mybatis <collection>映射map接收
时间: 2024-09-14 09:09:35 浏览: 53
在MyBatis中,`<collection>`元素用于处理Java集合,特别是当需要将数据库结果集中的数据映射到Java Bean的集合属性上时。当你有一个Map作为目标属性,可以使用`<collection type="java.util.Map" property="targetProperty">`这样的配置。
例如,假设你有一个User对象,它的`permissions`字段是一个Map<String, String>,你可以这样做:
```xml
<select id="getUserWithPermissions" resultType="com.example.User">
SELECT * FROM users WHERE id = #{id}
<resultMap id="userResultMap" type="com.example.User">
<!-- 其他字段映射 -->
<collection property="permissions"
javaType="java.util.Map"
ofType="java.lang.String">
<id property="key" column="permission_key"/>
<value property="value" column="permission_value"/>
</collection>
</resultMap>
</select>
```
在这个例子中,查询结果中的每一行都会被转换成一个包含键值对的Map,存储在User对象的permissions属性里。`ofType="java.lang.String"`指定了Map的泛型类型,即Key和Value都是String类型。
阅读全文