开发者社区 问答 正文

Mybatis通过HashMap返回多条记录

1、在Mybatis中写了一个UserMapper.java,一个UserMapper.xml,其中有一个SQL会返回一个hashmap,然后在UserMapper中也是用Map<String,String>接收,但在测试的时候会出现一个返回多条记录的异常。Map不是本来就可以接收多条吗?难道我非得通过List去接收吗?可是我业务层就是需要用Map,也不想在XML通过resultMap去转。有点感觉多此一举一样。有谁碰到过没? 1、 Java代码 收藏代码

public Map<String,Integer> queryUserMenuAuthByUser(String userId) ;

2、

<select id="queryUserMenuAuthByUser" parameterType="string" resultType="hashmap"> 
select auth_code,menu_code from sys_user_auth where user_id=#{userId} 
    </select>

这里会报回多条记录如下 exceptions.TooManyResultsException: Expected one result (or null) to be returned by selectOne()

展开
收起
长安归故里. 2020-01-07 20:51:30 1580 分享 版权
1 条回答
写回答
取消 提交回答
  • 谁告诉你返回的第一个字段值就是Map的key,第二个字段值就是Map的Value呢???

    没有任何官方文档有这种写法,凡事不要想当然好不!

    Mybatis返回的Map是这样的一种格式:Map<字段名称,字段值>

    一个Map<字段名,字段值>对象代表一行数据!

    返回多行(多条)数据当然是多个Map啦,多个Map就只好放在List中,比较只能返回一个参数对象!

    2020-01-07 20:52:03
    赞同 展开评论