定义resultMap
<resultMap id="retMap" type="java.util.HashMap">
<result property="key" column="pwid_KEY" javaType="java.lang.String"/>
<result property="value" column="pwid_VALUE" javaType="java.lang.String"/>
</resultMap>
查询语句
<select id="selectPlanWorkInfoMap" resultMap="retMap">
select
plan_detail_id as pwid_KEY,
business_name as pwid_VALUE
from
plan_work_info_detail
<where>
<if test="planScheduleId !=null">
plan_schedule_id = #{planScheduleId}
</if>
</where>
</select>
重写ResultHandler
import org.apache.ibatis.session.ResultContext;
import org.apache.ibatis.session.ResultHandler;
import java.util.HashMap;
import java.util.Map;
public class SelectMapKeyAndValue implements ResultHandler {
private final HashMap mappedResults = new HashMap();
@SuppressWarnings({ "rawtypes", "unchecked" })
@Override
public void handleResult(ResultContext context) {
Map map = (Map) context.getResultObject();
mappedResults.put(map.get("key"), map.get("value"));
}
public HashMap getMappedResults() {
return mappedResults;
}
}
调用daoImpl方法实现
调用自定义重写的ResultHandler
public HashMap getDataMap() {
try{
SelectMapKeyAndValue handler = new SelectMapKeyAndValue();
sqlSessionTemplate.select("selectPlanWorkInfoMap", handler);
HashMap map = handler.getMappedResults();
return map;
}catch(Exception e){
e.printStackTrace();
}
}
结果
{AAA=00, BBB=00, CCC=00, DDD=00, EEE=00, FFF=00}
这篇博客介绍了如何在MyBatis中定义resultMap来映射查询结果到HashMap,以及如何重写ResultHandler进行结果处理。示例展示了查询语句从plan_work_info_detail表中根据条件获取plan_detail_id和business_name,并将它们作为key-value对存入HashMap。最后通过自定义的SelectMapKeyAndValue ResultHandler获取并返回查询结果。
2745

被折叠的 条评论
为什么被折叠?



