一、准备环境
查询每个用户的订单
User表
Orders表
只有user表中id为51的有两个订单信息,user和orders关系为一对多
二、<ResultMap>标签使用时易犯的错误点
1.数据库中查询结果
在数据库查询所有用户订单结果为:
沈腾用户有两条订单记录 ,SQL如下
SELECT
user.`id`,user.`username`,user.`sex`,user.`address`,user.`birthday`,orders.`id`,
orders.`user_id`,orders.`createtime`
FROM `user`
INNER JOIN orders ON user.`id` = orders.`user_id`
2.MyBatis查询
mapper.xml写法如下
测试代码
记过如下
发现Total为2,但是,orders的结果为一条,上面在数据库中查询结果是沈腾有2条订单记录
三,问题分析
1.查看<ResultMap>标签写法
上面的column中的代表user表的id,下面column则代表orders表的id
SQL查询结果为
发现有两个字段名都为id,这就导致MyBatis封装结果错误
四、解决
给其中一列id起别名
至此,两条结果都查询出来啦!!!