mybatis中查询出多个以key,value的属性记录,封装成一个map返回的方法
原文:https://www.cnblogs.com/han-guang-xue/p/11548498.html
1.编写ResultMap,映射字段值和key/value的关系
<resultMap id="configMap" type="java.util.Map" >
<result column="SCName" property="key" jdbcType="VARCHAR" />
<result column="SCValue" property="value" jdbcType="VARCHAR" />
</resultMap><!-- 模糊查询出多条记录 -->
<select id="selectBySCName" resultMap="configMap" parameterType="java.lang.String">
select "SCName" , "SCValue" from "SystemCongfigures" where "SCName" like #{SCName}
</select>
2.使用MapKey指定需要作为key值的属性
@MapKey("key")
public Map<String, Object> selectBySCName(@Param("SCName") String SCName);
补充
按照以上的方式,会把查询得到的每一行数据封装成一个Map(key=SCName,value=SCValue),然后把所有的Map又以SCName为key,都封装进一个Map中,没有达到我想要的效果,只能自己定义一个类,属性为查询出的两个字段,然后将步骤2中Map后面的Object相应替换掉,@MapKey("")指定哪个属性作为key值。