mybatis 一对一返回一个map,其中一个字段做key,其余字段做value
时间: 2024-10-23 18:10:05 浏览: 122
在MyBatis中,当你需要从数据库表中一对一地获取一条记录,并希望某些字段作为Key,其他字段作为Value构成一个Map,可以使用association
元素配合resultMap
来实现。首先,你需要创建一个resultMap
来表示单条记录并指定Key字段:
<resultMap id="exampleResultMap" type="YourModelClass">
<id property="keyField" column="key_column" />
<association property="dataMap" javaType="Map<String, YourDataValueClass>"
select="yourMapper.getDataForKey">
<id property="valueKey" column="value_key_column"/>
<result property="valueValue" column="value_value_column"/>
</association>
</resultMap>
这里YourModelClass
是包含Key字段的对象,YourDataValueClass
是你要作为Value的另一个实体类,key_field
、value_key_column
和value_value_column
分别是数据库中的对应字段名。
然后,在Mapper XML里,定义一个动态SQL的select
语句来获取具体的value信息:
<select id="getDataForKey" parameterType="String" resultType="YourDataValueClass">
SELECT value_key_column, value_value_column FROM your_data_table WHERE key_column = #{keyField}
</select>
最后,通过YourModelClass
的实例调用getDataForKey
方法并得到的结果会填充到该实例的dataMap
字段中,形成一个Key-value结构。
相关推荐



















