Mybatis:级联查询,association,分步延迟加载


prtyaa
prtyaa 2023-12-28 16:57:49 48800 赞同 0 反对 0
分类: 资源
第一张图是user表,user表里的d_id保存的就是第二张表deptartment的id。意思是:2号员工李四的d_id =1 就意思是李四是开发部。

数据库如图:

第一张图是user表,user表里的d_id保存的就是第二张表deptartment的id。意思是:2号员工李四的d_id =1 就意思是李四是开发部。

实体类:(注意这里实体类和数据库的字段都对不上,需要使用resultMap进行映射)

 

现需求是根据用户id查出用户信息的同时,还要查出用户所在的部门(开发部还是测试部)

sql如下

我们可以看到 user的d_id 肯定是和 dept的id是一样的,现在一条记录里面有2个id列

改个名字看看,重新写一下sql:

 

现在想一下 结果集怎么封装呢?resultType肯定不行。所以定义resultMap。

下来写xml

测试:

结果:


还可以这样写:用association 和上图一样因为dept_name 用了别名成了dep_name 所以column就是别名dep_name

结果是一样的。


 

上面的sql有点复杂了。 我们想一下

后面这个红框的列是 deptartment表的列。 再user表里保存了deptartment表的id 。 那么我们可以先根据user表的id把user的信息查出来,然后再根据user中的d_id 把user的部门查出来。

看下怎么实现:

association中的select:

或者这样写:(如果列多的话,配置一下这个类的resultmap映射,也是可以的。如果列多的话)

测试:


以上这些 我们再查询user的同时,也把deptartment表中的部门信息都查出来了。而有时候我们不需要部门信息,这就造成了数据库的负担。此时可以使用延迟加载就ok了。settings配置

如果您发现该资源为电子书等存在侵权的资源或对该资源描述不正确等,可点击“私信”按钮向作者进行反馈;如作者无回复可进行平台仲裁,我们会在第一时间进行处理!

评价 0 条
prtyaaL2
粉丝 1 资源 1949 + 关注 私信
最近热门资源
银河麒麟桌面操作系统备份用户数据  129
统信桌面专业版【全盘安装UOS系统】介绍  125
银河麒麟桌面操作系统安装佳能打印机驱动方法  118
银河麒麟桌面操作系统 V10-SP1用户密码修改  106
麒麟系统连接打印机常见问题及解决方法  13
最近下载排行榜
银河麒麟桌面操作系统备份用户数据 0
统信桌面专业版【全盘安装UOS系统】介绍 0
银河麒麟桌面操作系统安装佳能打印机驱动方法 0
银河麒麟桌面操作系统 V10-SP1用户密码修改 0
麒麟系统连接打印机常见问题及解决方法 0
作者收入月榜
1

prtyaa 收益393.62元

2

zlj141319 收益218元

3

1843880570 收益214.2元

4

IT-feng 收益210.13元

5

风晓 收益208.24元

6

777 收益172.71元

7

Fhawking 收益106.6元

8

信创来了 收益105.84元

9

克里斯蒂亚诺诺 收益91.08元

10

技术-小陈 收益79.5元

请使用微信扫码

加入交流群

请使用微信扫一扫!