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

目录

问题描述

方法一:在SQL语句中起别名

方法二:resultMap


问题描述

如果数据库中的字段和实体类中的属性不一致怎么弄呢?

 

方法一:在SQL语句中起别名

起别名看似很完美,但如果起别名的字段很多,sql语句就会非常臃肿

select id,name,pwd from mybatis.user where id = #{id}

方法二:resultMap

在具体的Mapper.xml文件中,加resultMap标签。这里面其实是很灵活的,比如我只有pwd!=password,那其他字段没必要映射。

这种做法把SQL中非必要的操作给转移到<resultMap>标签中。但是,如果连跨5个实体查5个表,<resultMap>就会非常的臃肿,对于优化方案会在后面的博客中分享

<!--结果集映射-->
<resultMap id="UserMap" type="User">
    <!--column数据库中的字段,property实体类中的属性-->
    <result column="pwd" property="password"/>
</resultMap>

<select id="getUserById" resultMap="UserMap">
    select * from user where id = #{id}
</select>
发布了568 篇原创文章 · 获赞 180 · 访问量 18万+

猜你喜欢

转载自blog.csdn.net/Delicious_Life/article/details/105651721