mybatis xml映射文件 select 返回类型
时间: 2025-06-29 07:08:58 浏览: 11
### MyBatis XML 映射文件中 Select 语句的返回类型配置
在 MyBatis 的 XML 映射文件中,`<select>` 标签用于定义查询操作。为了指定 `select` 语句的结果映射方式,可以使用 `resultType` 或者 `resultMap` 属性。
#### 使用 resultType 配置简单 Java 对象
当查询结果可以直接映射为简单的 JavaBean 或基本数据类型时,可直接设置 `resultType` 属性来指明期望得到的数据结构[^1]:
```xml
<select id="findUserById" parameterType="int" resultType="com.example.User">
SELECT * FROM users WHERE id = #{id}
</select>
```
上述例子表示通过传入整型参数获取对应 ID 用户的信息并将其封装成 `com.example.User` 实体类实例返回给调用方。
#### 使用 resultMap 定义复杂映射关系
对于更复杂的场景下(比如存在多表关联),则推荐采用 `resultMap` 来精确控制字段与属性之间的转换逻辑[^2]:
```xml
<!-- 定义 Result Map -->
<resultMap id="userResultMap" type="com.example.User">
<id property="id" column="user_id"/>
<result property="username" column="name"/>
<!-- 更多字段映射... -->
</resultMap>
<!-- 应用 Result Map 到 Select Statement 中 -->
<select id="findUsersByCriteria" parameterType="map" resultMap="userResultMap">
SELECT user_id, name /* ... */ FROM users
WHERE ${criteria} LIMIT #{limitOffset},#{pageSize}
</select>
```
这里先声明了一个名为 `userResultMap` 的映射规则集,在实际执行 SQL 查询之前已经准备好如何处理每一列的数据;之后再利用这个预设好的映射方案去解释来自数据库服务器端响应的内容。
每次解析到自定义标签时,MyBatis 会调用 `XMLMapperBuilder.parse()` 方法。该方法负责构建相应的 Mapper 接口实现以及初始化各种内部组件,包括但不限于 `<select>` 节点下的返回值设定部分。
此外,关于 SQL 片段 (`sqlFragments`) 的解析也是由 `XMLMapperBuilder` 类中的特定成员变量管理完成的,这有助于提高代码重用性和维护效率。
阅读全文
相关推荐


















