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
- mybatis关联查询
- mybatis表关联查询
- Mybatis关联表查询
- MyBatis关联查询
- Mybatis关联查询
- MyBatis 关联查询
- mybatis实现关联查询
- Mybatis如何关联查询
- mybatis 关联sql查询
- MyBatis关联查询(一对一)
- mybatis 关联查询
- MyBatis 关联查询
- mybatis一对一关联查询
- Mybatis关联查询
- Mybatis的关联查询
- MyBatis关联查询
- Mybatis一对一关联查询
- mybatis的关联查询
- UI界面上容易混淆的错别字
- 本地Maven的安装和配置
- Java微服务框架一览
- 视音频pts计算
- Java 开发 linux 环境 配置
- mybatis关联查询
- No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
- 五、系统调用(2)-例子分析
- BootStrap实现网上商城首页的排版布局,可匹配不同尺寸的PC,平板,手机。
- 生成随机字符串
- Android--数字签名和数字证书
- 第一天学习python执行python文件需要给文件权限
- 有智能手机取代相机?---凯利讯半导体
- 程序员必备基础知识