Mybatis中返回Map的实现
时间: 2024-01-23 21:03:02 浏览: 60
MyBatis 中返回 Map 的实现主要有两种方式:
1. 使用 resultMap
在 resultMap 中,可以通过设置 <resultMap> 标签的 type 属性为 Map 类型,然后在 <result> 标签中通过 column 属性指定数据库字段名,property 属性指定 Map 的 key 值,即可将查询结果转换为 Map。
示例代码:
```xml
<resultMap type="java.util.Map" id="userMap">
<id column="id" property="id" />
<result column="name" property="name" />
<result column="age" property="age" />
</resultMap>
<select id="getUser" resultMap="userMap">
SELECT id, name, age FROM user WHERE id = #{id}
</select>
```
2. 使用@MapKey注解
在 Dao 接口方法上使用 @MapKey 注解,指定查询结果集中的某个字段作为 Map 的 key,MyBatis 会将查询结果转换为 Map。
示例代码:
```java
public interface UserDao {
@MapKey("id")
Map<Long, User> getUsers();
}
```
```xml
<select id="getUsers" resultType="com.example.User">
SELECT id, name, age FROM user
</select>
```
以上就是 MyBatis 中返回 Map 的两种实现方式。需要注意的是,如果查询结果集中存在重复的 key,后面的数据会覆盖前面的数据。
阅读全文