数据库如图:
第一张图是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配置
如果您发现该资源为电子书等存在侵权的资源或对该资源描述不正确等,可点击“私信”按钮向作者进行反馈;如作者无回复可进行平台仲裁,我们会在第一时间进行处理!
加入交流群
请使用微信扫一扫!