Mybatis “多对一” 和 “一对多” 定义 “多对一”处理(推荐) “一对多”处理 (不推荐)

Mybatis
“多对一” 和 “一对多” 定义
“多对一”处理(推荐)
“一对多”处理 (不推荐)

Mybatis
“多对一” 和 “一对多” 定义
“多对一”处理(推荐)
“一对多”处理 (不推荐)

Mybatis
“多对一” 和 “一对多” 定义
“多对一”处理(推荐)
“一对多”处理 (不推荐)

 Mybatis
“多对一” 和 “一对多” 定义
“多对一”处理(推荐)
“一对多”处理 (不推荐)

“多对一”处理(推荐)

需求+pojo定义

需求:查询所有学生student, 以及其所有对应老师teacher的信息

学生pojo: id, name, tid(教师的id)

教师pojo: id, name

1.sql实现方式

使用sql实现极其简单:select s.id, s.name, t.name from student as s, teacher as t where s.tid = t.id;

2.mybatis实现方式

2.1 按照结果嵌套处理 (推荐,更简单)

Mybatis
“多对一” 和 “一对多” 定义
“多对一”处理(推荐)
“一对多”处理 (不推荐)

2.2 按照查询嵌套处理

Mybatis
“多对一” 和 “一对多” 定义
“多对一”处理(推荐)
“一对多”处理 (不推荐)

“一对多”处理 (不推荐)

需求+pojo定义

需求:查询所有学生student, 以及其所有对应老师teacher的信息

学生pojo: id, name, tid(教师的id)

教师pojo: id, name,List<Student> students

1.sql实现方式

依然不变,select s.id, s.name, t.name from student as s, teacher as t where s.tid = t.id;

2.mybatis实现方式

2.1 按照结果嵌套处理 

Mybatis
“多对一” 和 “一对多” 定义
“多对一”处理(推荐)
“一对多”处理 (不推荐)

Mybatis
“多对一” 和 “一对多” 定义
“多对一”处理(推荐)
“一对多”处理 (不推荐) 

2.2 按照查询嵌套处理

Mybatis
“多对一” 和 “一对多” 定义
“多对一”处理(推荐)
“一对多”处理 (不推荐)