5、Mybatis(解决属性名和字段名不一致的问题)
我们从数据库中取到的数据都会交给实体类,然后从实体类中拿到数据并操作数据,所以如果我们数据库中的字段要是和实体类中的属性不一致的话,我们就从实体类中无法得到我们想要的一些数据
解决方法:
- 起别名【不推荐】因为要是字段非常多的话,就很不方便
就是在Mapper.xml文件中将字段全部写出来,并给想到的字段起别名
<mapper namespace="com.kuang.dao.UserMapper">
<select id="getUserList" resultType="User">
select id,name,pwd as password from mybatis.user
</select>
</mapper>
- resultMap【推荐使用】
我们只需要在Mapper.xml文件中加入resultMap,设置column和property使得数据传输一致
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.kuang.dao.UserMapper">
<!--结果集映射-->
<resultMap id="userMap" type="User">
<result column="pwd" property="password"/>
</resultMap>
<select id="getUserList" resultMap="userMap">
select * from mybatis.user
</select>
</mapper>
- resultMap元素是MyBatis中最重要最强大的元素
- resultMap的设计思想是,对于简单的语句根本不需要配置显示的结果映射,而对于复杂一点的语句只需要描述他们的关系就行了
- resultMap最优秀的地方在于,虽然你已经对他相当了解了,但是就根本不需要显示的用到他们