结果集映射主要是为了解决属性名和类型名不一致的问题。
新建一个项目,拷贝之前的,测试实体类字段不一致的情况,如:数据库中的字段是pwd,实体类的字段是password,在执行查询的时候就会返回password=null
解决办法:
- 起别名
<!--解决属性名和类型名不一致的问题 方法1:起别名-->
<select id="getUserById" parameterType="int" resultType="user">-->
select id,name,pwd as password from mybatis.user where id = #{id}-->
</select>-->
- 使用resultMap
实体类中的属性 id name password
数据库中的字段 id name pwd
<!--结果集映射-->
<!--id就是resultMap使用的id,type就是返回的实体类-->
<resultMap id="UserMap" type="User">
<!--column就是数据库中对应的字段,property就是实体类中的属性-->
<!--如果只是要对应实体类的一个属性与数据库中的一个字段,只需要写出需要对应的那一个即可。-->
<result column="id" property="id"/>
<result column="name" property="name"/>
<result column="pwd" property="password"/>
</resultMap>
resuleMap元素是mybatis中最重要最强大的元素
resultmap的设计思想是,对于简单的语句根本不需要配置显式的结果映射,而对于复杂一点的语句- 只需要描述他们的关系就好了
resultmap最优秀的地方在于,虽然你已经对它相当了解了,但是根本就不需要显式的用到
本文介绍MyBatis中结果集映射的两种方法:起别名和使用resultMap。通过实例展示如何解决实体类字段与数据库字段不一致的问题。
879

被折叠的 条评论
为什么被折叠?



