原返回结果:
{
"value": 13,
"name": "张三"
},
{
"value": 14,
"name": "李四"
}
实现结果:
{
"张三": 13,
"李四": "14"
}
创建一个工具类
import org.apache.ibatis.session.ResultContext;
import org.apache.ibatis.session.ResultHandler;
import java.util.HashMap;
import java.util.Map;
@SuppressWarnings("all")
public class MapResultHandle<K, V> implements ResultHandler<Map<K, V>> {
private final Map<K,V> mappedResults = new HashMap<>();
@Override
public void handleResult(ResultContext<? extends Map<K, V>> resultContext) {
Map map = (Map) resultContext.getResultObject();
//key和value是xml中映射的
mappedResults.put((K)map.get("key"), (V)map.get("value"));
}
public Map<K, V> getMappedResults() {
return mappedResults;
}
}
mapper.class里面
void getUserInfo(@Param("keywords") String keywords, //查询的参数
ResultHandler resultHandler) //创建一个结果处理器,注意前面的返回结果要是void
实现层中
@Override
public Map<String, String> getWellDetailStatistics(String keywords) {
//创建一个刚才创建的结果处理器
MapResultHandle<String, String> mapResultHandle = new MapResultHandle<>();
//第一个是参数,第二个是处理器
userMapper.getUserInfo(keywords, mapResultHandle);
//返回工具类中的返回结果方法
return mapResultHandle.getMappedResults();
}