ResultMap结果集映射
简单使用ResultMap结果集映射
当我们数据库中的字段名与实体类中的属性名不一致时,我们的程序可能会出现一些我们意想不到的错误,比如。
数据库中的字段名如下:(id,name,pwd)
我们的实体类中的属性名如下(id,name,password)
当我们运行程序查询user表的结果为:
我们发现password的值为空
这就是字段名与属性名不同导致结果未查询出来
解决方案一:
可以在sql语句中为我们的pwd字段起一个别名
select id,name,pwd as password from mybatis.user
第二种方案就是使用ResultMap结果集映射
- 在我们的mapper.xml文件中增加一个ResultMap标签
<!--id:随便起一个名字 type指的是我们的实体类 -->
<resultMap id="resultMap" type="com.wang.pojo.User">
<!--column指的是我们数据库中的字段名 property指的是我们实体类中的属性名-->
<result column="id" property="id"></result>
<result column="name" property="name"></result>
<result column="pwd" property="password"></result>
</resultMap>
- 注意我们mapper.xml中的select标签(resultType改为resultMap)
<select id="getUserList" resultMap="resultNap">
select * from mybatis.user
</select>
- 再次运行程序我们就会发现我们的password已经有数值了:
注意:
当我们属性名与字段名一样时,我们仅仅可以注册不一样的,如下。
<!--id:随便起一个名字 type指的是我们的实体类 -->
<resultMap id="resultMap" type="com.wang.pojo.User">
<!--column指的是我们数据库中的字段名 property指的是我们实体类中的属性名-->
<result column="pwd" property="password"></result>
</resultMap>