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完成对象中 的某个对象的映射
原文地址:https://www.cnblogs.com/xiaotieblog/p/8343020.html
时间: 2024-10-11 19:12:55