五、解决属性名和字段名不一致的问题
1 问题
数据库中的字段
新建一个项目,测试实体类字段不一致的情况
public class User { private int id; private String name; private String password; }
经过测试通过id查询用户发现
select * from mybatis.user where id = #{id} //类型处理器 //select id,name,pwd from mybatis.user where id = #{id}
2.解决方法:
- 起别名:
<select id="getUserById" resultType="com.hxl.pojo.User"> select id, name, pwd as password from mybatis.user where id = #{id} </select>
- resultMap
结果集映射
数据库中 id name pwd 实体类中 id name password
我们可以在UserMapper.xml中修改
<!--结果集映射--> <resultMap id="UserMap" type="User"> <!--column是数据库中的字段,property实体类中的属性--> <result column="id" property="id"/> <result column="name" property="name"/> <result column="pwd" property="password"/> </resultMap> <select id="getUserById" resultMap="UserMap"> select id, name, pwd from mybatis.user where id = #{id} </select>
resultMap元素是 MyBatis 中最重要最强大的元素
- ResultMap 的设计思想是,对简单的语句做到零配置,对于复杂一点的语句,只需要描述语句之间的关系就行了。
ResultMap的优秀之处——你完全可以不用显式地配置它们
什么不一样就弄哪一个



