mybatis关联查询

来源:互联网 发布:蜂窝移动网络 启用4g 编辑:程序博客网 时间:2024/04/30 01:07

mybatis关联查询

第一步,在实体类里面创建要放进去的对象

第二步,使用注解@Transient

使用这个注解可以防止使用通用mapper的时候报错,可以理解为它标志不是数据库字段,方便以后扩展

第三步,写sql语句



SELECT

           <!--关联班级 -->

              tc.id AS tb_class_id,tc.number,tc.name AS tc_class_name,

           <!--关联小组 -->

            sg.group_id,sg.group_name,

            <!--关联实验 -->

            e.experiment_id,e.experiment_name,e.experiment_presentation,

            <!--关联成员 -->

            sgs.group_student_id,

            <!--学生个人 -->

            si.id AS stu_id,si.name AS stu_name,

            <!--学号 -->

            u.username,

            <!--考勤 -->

              ci.clocking_id,ci.status,ci.clocking_time,

           <!--成绩 -->

              sef.submit_experiment_file_id,sef.submit_status

       FROM tb_class tc

       LEFT JOIN scourse_group sg ON sg.class_id = tc.id

       LEFT JOIN experiment e ON e.experiment_id = sg.experiment_id

       LEFT JOIN scourse_group_student sgs ON sgs.group_id = sg.group_id

       LEFT JOIN student_info si ON si.id = sgs.group_student_id

       LEFT JOIN USER u ON u.id = si.id

       LEFT JOIN clocking_in ci ON ci.student_id = si.id

       LEFT JOIN submit_experiment_file sef ON sef.submitter_id = si.id

       WHERE tc.id IN (

                  SELECT

                    DISTINCT(class_id)

                     FROM scourse_group

                     WHERE schedule_id = #{scheduleId}

   

              )

       AND  tc.stealth=2  AND sg.schedule_id=#{scheduleId}

       AND ci.schedule_id=#{scheduleId} AND sef.schedule_id=#{scheduleId}

 

第四步,写结果集映射

 

备注:

(1)type是实体类

(2)id是唯一标识,是resulMap指定的标识

(3)autoMapping是指定是否自动映射,如果不指定,需要指定每一个结果集

(4)collection是集合映射,用于多个对象;association是用于单个对象

(5)如果里面有collection,又有association,应该把association放前面,不然会报错

(6)无论是association还是collection,都要指定主键<id/>

(7)column是查询数据库时的字段,如果有别名,那这里是别名,property是实体类的属性,对象实体类封装的名称

(8)扩展:association、collection的另一种写法,不建议使用

指定属性,用select属性,再去查询数据库,这种是属于懒人写法,不建议!!!!

备注:select里面的属性填的是xml标签的id值,表示去执行该sql

 

原创粉丝点击