MyBatis resultMap 与 sql

文章介绍了MyBatis的resultMap和sql标签的使用。resultMap用于自定义数据库数据到Java对象的映射,特别是在处理复杂对象时。sql标签则允许定义可重用的SQL片段,提高代码复用性。文中通过实例展示了如何在xml中定义resultMap和使用sql标签,并提醒resultMap与resultType不能同时使用。最后,文章提供了一个查询用户简略信息的实践例子,进一步巩固所学知识。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 前言

本小节,我们将一起学习 MyBatis resultMap 和 sql。

在前面的小节中,我们了解到 MyBatis 可以自动帮助我们映射数据库数据和 Java 对象,其实这是 MyBatis 在幕后帮我们创建了 resultMap 对象;虽然 MyBatis 可以自动帮助我们做数据映射,但是对于复杂的对象,我们就必须自定义 resultMap 了。

而在书写 SQL 时,势必会有一些 SQL 代码段出现了重复,为了更好的复用它们,MyBatis 提供了 sql 标签。

2. 定义

解释:resultMap 标签用于将数据库数据映射为 Java 对象;sql 标签则用来定义可重用的 SQL 代码段。

3. 实例

4.1 resultMap 实例

4.1.1 xml 实例

在下面这段 select 标签中,SQL 语句返回的是一个复杂对象,即 resultType 上指定的 User。

<select id="selectUserByAgeAndScore" parameterType="com.5axxw.mybatis.model.User"
        resultType="com.5axxw.mybatis.model.User">
  SELECT * FROM 5axxw_user WHERE age = #{age} AND score = #{score}
</select>

在这种情况下,MyBatis 会自动创建 resultMap 对象进行数据的映射,接下来我们直接定义出 resultMap,避免 MyBatis 推断和映射带来的性能损耗。如下:

<resultMap id="userMap" type="com.5axxw.myb
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值