MyBatis3.X复杂Sql查询的语句

网友投稿 410 2023-01-31

MyBatis3.X复杂Sql查询的语句

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 videoOrderList = videoOrderMapper.queryVideoOrderList();

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 userList = videoOrderMapper.queryUserOrder();

System.out.println(userList.toString());

Mybatis3.X ResultMap复杂对象查询总结

总结ResultMap的复杂对象查询

association映射的是一个pojo类,处理一对一的关联关系。

collection映射的一个集合列表,处理的是一对多的关联关系。

模板

<!--column不做限制,可以为任意表的字段,而property须为type定义的pojo属性-->

<!--集合中的property 需要为oftype定义的pojo对象的属性-->

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Hadoop 使用IntelliJ IDEA 进行远程调试代码的配置方法
下一篇:解决idea找不到或无法加载主类的错误处理
相关文章

 发表评论

暂时没有评论,来抢沙发吧~