首页 > 其他 > 详细

MyBatis学习之一----多表查询

时间:2018-01-24 20:38:52      阅读:240      评论:0      收藏:0      [点我收藏+]

1、mybatis实际上并不是pojo和数据库的字段的对应,而是pojo和sql语句的对应。

  两个表通过相同的主键来查询

(1)内连接查询

  select * from tb_order o,tb_user u where o.user_id = u.id;

 查询tb_order和tb_user两个表中id相等的信息。

(2)外链接查询

  select * from tb_order o LEFT JOIN tb_user u ON o.user_id = u.id

与(1)结果相同。以外链接为主,以订单为主不管是否对应客户,都要把订单查询出来。

那么如何将两个表中查询的结果封装到一个对象中呢?既包含订单信息也包含用户信息。

  第一种解决方案:新建一个类,包含订单和用户信息。将查询结果集和对象对应上。

  技术分享图片

扩展Order对象,来映射结果集。

  

 

面向对象的思想解决方式:

  在Order对象中添加User对象

  在Order类中,添加private User user;并添加getter和setter方法。

  但是mapper用原来的sql并不能封装进来,无法完成自动映射。那么如何解决呢?

  使用resultMap

  association完成对象中 的某个对象的映射

  

 

MyBatis学习之一----多表查询

原文:https://www.cnblogs.com/xiaotieblog/p/8343020.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!