Kingsacs
2019-11-26 21:35
采纳率: 50%
浏览 436
已采纳

已配置ResultMap,但Mybatis查询结果List长度正确,值为空

使用xml写sql,配置了ResultMap,如下

<mapper namespace="com.example.demo.dao.UsersDao">
    <resultMap id="UsersMap" type="com.example.demo.entity.Users">
        <result column="id" jdbcType="VARCHAR" property="id" />
        <result column="name" jdbcType="VARCHAR" property="name" />
        <result column="password" jdbcType="VARCHAR" property="password" />
        <result column="mobile" jdbcType="VARCHAR" property="mobile" />
    </resultMap>

    <select id="ListUsers" resultMap="UsersMap">
        select * from users;
    </select>
</mapper>

数据库的内容如下图片说明
但是使用@ResponseBody注解执行结果为
图片说明
长度是对的,有5条数据,但是结果全部为空
请问这是为什么?之前有帖子说是名称对应不上,但我检查了好几遍。请问应该如何修改?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

5条回答 默认 最新

  • zhshchilss 2019-11-27 09:21
    已采纳

    现在后台随便输出一个对象的属性,看有没有内容,你的实体有没有getter setter

    点赞 评论
  • 好像没有遇到过这个问题,其实如果是简单的实体类(类里面都是基本数据类型的),没有必要用resultMap,直接使用resultType就可以了,比如resultType="com.example.demo.entity.Users"

    点赞 评论
  • 臭小子帅 2019-11-27 09:25

    检查下楼上说的getset,另外,resultMap中 主键应该是id标签
    ,其他的是<result xxxxx

    点赞 评论
  • 时光有伱记忆成花 2019-11-27 09:34
        <resultMap id="UsersMap" type="com.example.demo.entity.Users">
                <id column="id" property="id" jdbcType="VARCHAR" />
        <result column="name" jdbcType="VARCHAR" property="name" />
        <result column="password" jdbcType="VARCHAR" property="password" />
        <result column="mobile" jdbcType="VARCHAR" property="mobile" />
    </resultMap>
    
    
    
    点赞 评论
  • sinat_35053659 2019-11-27 09:47

    如果只是简单对象,不用写那么复杂,直接返回类型定义为对象就行,用resultType替换resultMap:

    <select id="ListUsers" resultType="com.example.demo.entity.Users">
            select * from users;
        </select>
    
    点赞 评论

相关推荐 更多相似问题