mybatis ResultType为泛型该如何生效
时间: 2024-05-12 20:15:00 浏览: 285
MyBatis中关于resultType和resultMap的区别介绍
如果 MyBatis 的 `ResultType` 是一个泛型类型,那么需要在映射文件中使用 `resultType` 属性指定一个具体的类型。例如:
```xml
<select id="selectUsers" resultType="com.example.User">
select * from users
</select>
```
在这个例子中,`selectUsers` 查询语句的返回类型为 `com.example.User`,而 `User` 类型是一个泛型类型。
如果 `ResultType` 是一个带有类型参数的泛型类型,例如 `List<T>` 或 `Map<K, V>`,那么需要使用 `typeHandler` 或 `resultMap`,并在其中指定泛型类型参数。例如:
```xml
<!-- 使用 typeHandler 指定 List<User> 的泛型类型参数 -->
<select id="selectUsers" resultType="java.util.List" typeHandler="org.apache.ibatis.type.ArrayTypeHandler">
select * from users
</select>
<!-- 使用 resultMap 指定 Map<String, User> 的泛型类型参数 -->
<select id="selectUsers" resultMap="userMap">
select * from users
</select>
<resultMap id="userMap" type="java.util.Map">
<result column="id" property="key" />
<result column="name" property="value" />
</resultMap>
```
阅读全文