mybatis结果集映射

mybatis结果集映射

结果集映射(resultType)用来解决我们实体类中的参数名与数据库中列名不一致的问题。

当我们的实体类的参数名与数据库中的列名不一致是 就会发生查询错误

实体类的参数名与数据库中的列名不一致

此时的查询结果

错误的查询结果

我们可以发现 相同的查询正确,但是错误的查询的是null 查询不到

产生错误的原因

1
2
3
4
5
6
7
<select id="getStudentList" resultType="student">
select * from mybatis.student
</select>
<!--这个SQL等共同于-->
<select id="getStudentList" resultType="student">
select id,name,password from mybatis.student
</select>

可以看到 在student里根本没有查询到的password参数。因此产生了错误。

解决方法:

  • 使用别名
  • 结果集映射

使用别名

1
2
3
<select id="getStudentList" resultType="student">
select id,name,password as pwd from mybatis.student
</select>

这样就能直接查询了 但是这种方法是十分基础的,写的代码数量多。

结果集映射(resultType)

使用结果集映射 是在接口类的实现的mapper文件中操作,而不是和我们原来在核心配置文件中操作

1
2
3
4
5
6
7
8
9
10
<mapper namespace="com.dwx.mapper.StudentMapper">
<resultMap id="StudentMap" type="student">
<result column="id" property="id"/>
<result column="name" property="name"/>
<result column="password" property="pwd"/>
</resultMap>
<select id="getStudentList" resultMap="StudentMap">
select * from mybatis.student
</select>
</mapper>

元素分析:

column:“列”,是指数据库中的字段的列名

property:“属性”,是指实体类中的属性

可以把每个参数都进行映射,也可以只对实体类中的参数与数据库中列名不同的进行映射

Donate
  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.

扫一扫,分享到微信

微信分享二维码
  • Copyrights © 2015-2023 dwx
  • Visitors: | Views:

请我喝杯咖啡吧~

支付宝
微信