0%

MyBatis多表操作

ManyToOne

关系表

查询

分步查询

  • 第一步 先查出所有的订单

  • 第二步 根据 id 查出对应客户

左连接查询

  • 查询所有的订单及订单所对应的客户,左连接,把左边表的数据全部查出,右边表只查出满足条件的记录

对应sql

1
SELECT * FROM `order` as o LEFT JOIN customer as c on o.cus_id = c.cust_id;

建立 domain

建立 Mapping 映射


测试类

分部查询懒加载

1
2
3
4
5
6
 <!--延迟加载的全局开关。当开启时,所有关联对象都会延迟加载。-->
<setting name="lazyLoadingEnabled" value="true"/>
<!--当开启时,任何方法的调用都会加载该对象的所有属性。否则,每个属性会按需加载-->
<setting name="aggressiveLazyLoading" value="false"/>
<!--指定哪个对象的方法触发一次延迟加载。-->
<setting name="lazyLoadTriggerMethods" value="equals,clone,hashCode"/>

添加

添加客户

设置关系

添加订单

OneToMany

查询

查询客户和客户订单

sql语句

1
SELECT * FROM customer as c LEFT JOIN `order` as o  on c.cust_id = o.cust_id;

映射

测试

添加

保存数据




维护外键


管理关系

删除

删除时一定要先打破关系再做删除操作





ManyToMany

关系表

查询

分步查询

查询出指定的老师


根据老师 id 查询出所有学生


查询

左边接查询


添加

添加老师
添加学生
添加中间关系

↓赏一个鸡腿... 要不,半个也行↓