MyBatis多表操作

简介: MyBatis多表操作

ManyToOne

关系表

查询

分步查询

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

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

左连接查询

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

对应sql

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

建立 domain

建立 Mapping 映射


测试类

分部查询懒加载

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

添加

添加客户

设置关系

添加订单

OneToMany

查询

查询客户和客户订单

sql语句

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

映射

测试

添加

保存数据




维护外键


管理关系

删除

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





ManyToMany

关系表

查询

分步查询

查询出指定的老师


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


查询

左边接查询


添加

添加老师

添加学生

添加中间关系

推荐文章

相关文章
|
5月前
|
XML Java 数据库连接
【MyBatis】MyBatis操作数据库(一)
【MyBatis】MyBatis操作数据库(一)
48 1
|
5月前
|
XML Java 数据库连接
如何使用 MyBatis 来进行增、删、改、查操作
如何使用 MyBatis 来进行增、删、改、查操作
154 2
|
5月前
|
SQL 存储 Java
基于MyBatis的增删改查操作
基于MyBatis的增删改查操作
41 1
|
5月前
|
缓存 Java 数据库连接
我们后端程序员不是操作MyBatis的CRUD Boy
大家好,我是南哥。一个对Java程序员进阶成长颇有研究的人,今天我们接着新的一篇Java进阶指南。为啥都戏称后端是CRUD Boy?难道就因为天天怼着数据库CRUD吗?要我说,是这个岗位的位置要的就是你CRUD,你不得不CRUD。哪有公司天天能给你搭建高并发、高可用、大数据框架的活呢,一条业务线总要成长吧,慢慢成熟了就要装修工来缝缝补补、美化美化,也就是CRUD的活。不能妄自菲薄CRUD Boy,我们是后端工程师。今天来指南下操作数据库之MyBatis框架。
120 3
我们后端程序员不是操作MyBatis的CRUD Boy
|
4月前
|
SQL 缓存 Java
使用MyBatis优化Java持久层操作
使用MyBatis优化Java持久层操作
|
4月前
|
SQL 缓存 Java
使用MyBatis优化Java持久层操作
使用MyBatis优化Java持久层操作
|
5月前
|
Java 数据库连接 数据库
Spring日志完结篇,MyBatis操作数据库(入门)
Spring日志完结篇,MyBatis操作数据库(入门)
|
6月前
|
XML Java 数据库连接
利用MyBatis框架操作数据库2
利用MyBatis框架操作数据库
42 2
|
6月前
|
Java 数据库连接 测试技术
利用MyBatis框架操作数据库1
利用MyBatis框架操作数据库
46 1
|
5月前
|
SQL Java 数据库连接
【MyBatis】深入解析MyBatis:高效操作数据库技术详解
【MyBatis】深入解析MyBatis:高效操作数据库技术详解
43 0