MyBatis的多表查询和封装操作

目标:查询user表里所有的用户时也要将order表里的每个用户的所有订单信息与相应的用户信息进行封装(一个用户可能有多个order信息,这里的是一对多的关系)

  1. 首先在user表里添加order集合,用于封装查询到的订单信息
  2. 在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.测试

经验分享 程序员 微信小程序 职场和发展