Mybatis解决属性名和字段名不一致的问题

新建一个项目,拷贝之前的,测试实体类字段不一致的情况,如:数据库中的字段是username,实体类的字段是user,在执行查询的时候就会返回user=null

解决办法:

  • 起别名
<select id="getUserById" resultType="com.superman.pojo.User" parameterType="int">
    select id,birthday,sex,address,username as user from mybatis.user where id=#{id};
</select>
  • 使用resulrMap
实体类中的属性  id username password
数据库中的字段  id name     password 

<!--结果集映射-->
<!--id就是resultMap使用的id,type就是返回的实体类-->
<resultMap id="UserMap" type="User">
    <!--column就是数据库中对应的字段,property就是实体类中的属性-->
    <!--如果只是要对应实体类的一个属性与数据库中的一个字段,只需要写出需要对应的那一个即可。-->
    <result column="id" property="id"/>
    <result column="username" property="name"/>
    <result column="birthday" property="birthday"/>
    <result column="address" property="address"/>
    <result column="sex" property="sex"/>
</resultMap>
  • resuleMap元素是mybatis中最重要最强大的元素
  • resultmap的设计思想是,对于简单的语句根本不需要配置显式的结果映射,而对于复杂一点的语句- 只需要描述他们的关系就好了
  • resultmap最优秀的地方在于,虽然你已经对它相当了解了,但是根本就不需要显式的用到
  • 如果世界总是这么简单就好了
发布了35 篇原创文章 · 获赞 48 · 访问量 8873

猜你喜欢

转载自blog.csdn.net/weixin_43894771/article/details/104931797