mybatis复杂sql查询——多对一和一对多处理
mybatis复杂sql查询——多对一和一对多处理
sforeverd
于 2021-04-25 16:17:44 发布
180
收藏
分类专栏: mybatis 文章标签: sql mysql mybatis
版权
mybatis
专栏收录该内容
6 篇文章0 订阅
订阅专栏
以学生表(Student)和教师表(Teacher)为例:
其中tid为外键约束
多对一处理
按查询嵌套处理
(相当于sql中的子查询)
思路:
1.查询所有的学生信息
2.根据查询出来的学生信息中的tid,查找教师信息:子查询
/**
* 查询学生信息以及对应的老师信息
* @return
*/
public List
/**
* 获取学生表tid列名对应的教师信息
* @param id 每个学生对应的教师编号
* @return
*/
public Teacher getTeacher(int id);
1
2
3
4
5
6
7
8
9
10
11
12
13
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
按结果嵌套处理
(相当于sql中的联表查询)
1
2
3
4
5
6
7
8
9
10
11
12
13
一对多处理
教师的实体类为:
学生的实体类为:
按结果嵌套处理
/**
* 获取指定老师的及对应的所有学生信息
* @param id 教师编号
* @return
*/
public List
1
2
3
4
5
6
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
按查询嵌套处理
1
2
3
4
5
6
7
8
9
10
11
12
13
14
注意点:
1、关联-association(一对一和多对一)
2、集合-collection(一对多)
3、JavaType和ofType都是用来指定对象类型的
JavaType是用来指定pojo中属性的类型
ofType指定的是映射到list集合属性中pojo的类型。
————————————————
版权声明:本文为CSDN博主「sforeverd」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/sundan614/article/details/116123037