前段时间遇到一个小问题,就是我需要在一个订单表的映射文件里写一个查询,需要返回每一个对应的用户id和订单的总数,而订单表没有总数这个字段,这是count出来的,怎样返回给service层一时间找不到方案,在详细看了mybatis的文档后,找到了解决方案
<select id="OrderManage.poemAppreciation" resultType="java.util.HashMap">
select k.user_id uid,count(m.user_id) num from (select user_id from user_info ) k left join (select user_id from order_manage ) m on k.user_id = m.user_id
group by k.user_id order by num DESC
</select>
首先resultType必须是java.util.HashMap,把你的sql语句粘贴进去
service层
public List<Map> poemAppreciation(Map<String, Object> map){
return batisDao.getList("OrderManage.poemAppreciation");
}
cotroller层调用service层
List<Map> maplist= orderManageService.poemAppreciation(map);
就可以得到map结果集