app开发者平台在数字化时代的重要性与发展趋势解析
402
2023-01-31
MyBatis3.X复杂Sql查询的语句
MyBatis3.X复杂Sql查询
MyBatis3.X的resultMap
1.Mybatis的sql语句返回的结果有两种
resultType
查询出的字段在相应的pojo中必须有和它相同的字段对应,或者基本数据类型
适合简单查询
resultMap
需要自定义字段,或者多表查询,一对多等关系,比resultType更强大
适合复杂查询
select id , title as video_tile, summary, cover_img from video where id = #{video_id}
ResultMap复杂对象一对一查询结果映射之association
association:映射到POJO的某个复杂类型属性,比如订单order对象里面包含user对象
select
o.id id,
o.user_id,
o.out_trade_no,
o.state,
o.total_fee,
o.video_id,
o.video_title,
u.name,
u.head_img,
u.phone
from video_order o left join user u on o.user_id = u.id
代码
// resultmap association关联查询
VideoOrderMapper videoOrderMapper =sqlSession.getMapper(VideoOrderMapper.class);
List
System.out.println(videoOrderList.toString());
ResultMap复杂对象一对多查询结果映射之collection
collection: 一对多查询结果查询映射,比如user有多个订单
select
u.id,
u.name,
u.head_img,
u.phone,
o.id order_id,
o.out_trade_no,
o.user_id,
o.state,
o.total_fee,
o.video_id,
o.video_title
from user u left join video_order o on u.id = o.user_id
代码
// resultmap association关联查询
VideoOrderMapper videoOrderMapper =sqlSession.getMapper(VideoOrderMapper.class);
//resultmap collection测试
List
System.out.println(userList.toString());
Mybatis3.X ResultMap复杂对象查询总结
总结ResultMap的复杂对象查询
association映射的是一个pojo类,处理一对一的关联关系。
collection映射的一个集合列表,处理的是一对多的关联关系。
模板
<!--column不做限制,可以为任意表的字段,而property须为type定义的pojo属性-->
<!--集合中的property 需要为oftype定义的pojo对象的属性-->
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~