目录
问题描述
如果数据库中的字段和实体类中的属性不一致怎么弄呢?
方法一:在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>