Mybatis collection
需求
1 | 复制代码查询所有用户信息及用户关联的订单信息。 |
分析
在一对多关联查询时,只能使用resultMap进行结果映射。
1、一对多关联查询时,sql查询结果有多条,而映射对象是一个。
2、resultType完成结果映射的方式的一条记录映射一个对象。
3、resultMap完成结果映射的方式是以[主信息]为主对象,[从信息]映射为集合或者对象,然后封装到主对象中。
po类
PO 用户订单列表
1 | arduino复制代码@Data |
注:PO类不能使用
extends
赋值不进去
UserMapper
1 | java复制代码public interface UserMapper { |
UserMapper.xml
分布查询
resultMap
1 | xml复制代码<!-- 一对多 分布查询 --> |
查询sql
1 | xml复制代码 <!-- 查询用户订单列表 一对多 --> |
连表单词查询
resultMap
1 | xml复制代码<!-- 一对多 链表查询 --> |
查询sql
1 | xml复制代码<!-- 查询用户订单列表 一对多 --> |
注: 如果两表联查,主表和明细表的主键都是id的话,明细表的多条只能查询出来第一条。
u.id AS user_id 和 o.id AS order_id,直接都用 id 查询多条,得到结果为一条
测试
1 | scss复制代码public class Phase04Test { |
本文转载自: 掘金