MyBatis的多表查询和封装操作
目标:查询user表里所有的用户时也要将order表里的每个用户的所有订单信息与相应的用户信息进行封装(一个用户可能有多个order信息,这里的是一对多的关系)
- 首先在user表里添加order集合,用于封装查询到的订单信息
- 在UserMapper.xml中编写对应接口findAll()中的sql语句 一对一:resultMap标签 一对多/多对多:resultMap+collection标签 在对数据进行额外封装时使用到resultMap进行封装:根据User对象(共四个变量)进行封装,分为两个部分
-
第一部分:封装id、username、password 将查询结果中的字段(column)封装为user的属性(property) 第二部分:将订单信息封装到User对象中的private List orderList; collection标签中的property代表集合的名称(orderList),ofType标签代表集合中存储的对象的类型(order)。 因此这里的order信息需要根据Order对象中存在的属性进行封装
sql查询结果如下:
3.测试
