2019-03-20 一对一查询

需求

查询订单信息,关联查询创建订单的用户信息

resultType

sql语句

确定查询的主表,订单表
确定查询的关联表,用户表

SELECT orders.*,
                `user`.username,
                user.sex,
                `user`.address
FROM orders,user where orders.user_id = user.id

创建pojo

将上边sql查询的结果映射到pojo上中,pojo中必须包括所有查询列名
原始的Order.java不能映射全部字段,需要新创建的pojo。
创建一个pojo继承包括查询字段较多的po类


mapper.xml

mapper.java

测试代码

resultMap

sql语句

确定查询的主表,订单表
确定查询的关联表,用户表

SELECT orders.*,
                user.username,
                user.sex,
                user.address
FROM orders,user where orders.user_id = user.id

使用resultMap映射的思路

使用resultMap将查询结果中的订单信息映射到Orders对象中,在Orders类中添加User属性,将关联查询出来的用户信息映射到Orders对象中User属性中。
需要Orders类中添加user属性:


resultMap配置

mapper.xml

mapper.java

测试代码

resultType和resultMap实现一对一查询小结

实现一对一查询:
resultType:使用resultType实现较为简单,如果pojo中没有包括查询出来的列名 ,需要增加列名对应的属性,即可完成映射。
如果没有查询结果的特殊要求建议使用resultType。

resultMap:需要单独定义resultMap,实现有点麻烦,如果对查询结果有特殊的要求,使用resultMap可以完成将关联查询映射pojo属性中。
resultMap可以实现延迟加载,resultType无法实现延迟加载。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容