来看下面一个案例(数据库列名和实体类中属性不一致这种情况)
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.qi.dao.UserMapper">
<!--结果集映射-->
<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 * from mybatis.user where id=#{id};
</select>
</mapper>
这样可以做到数据库列名和实体类中属性一一对应
夸张的说:resultMap
元素是 MyBatis 中最重要最强大的元素。它可以让你从 90% 的 JDBC ResultSets
数据提取代码中解放出来。在为一些比如连接的复杂语句编写映射代码的时候,一份 resultMap
能够代替实现同等功能的长达数千行的代码
ResultMap 的设计思想是,对于简单的语句根本不需要配置显式的结果映射,而对于复杂一点的语句只需要描述它们的关系就行了。
所以说,简单的不用,难的用它就对了!