描述:MyBatis 直接查询出的格式是 List 套 Map 的结构,当然利用 Stream 流进行转换也非常便捷,但如果这样的操作很多的话,不如利用 MyBatis 提供的 ResultHandler 接口进行实现,做成工具类使用。
此外,如果用 MyBatis 提供的 @MapKey ,也只是对应值有冗余,因为 MapKey取一个字段为键,取出的所有字段为值。
操作:
1. 实现 ResultHandler 接口
/**
* 用于MyBatis查询库表中两列映射为键值对
*/
@Component
public class MapResultHandler implements ResultHandler {
private final HashMap mapResults = new HashMap<String,String>();
private String key;
private String value;
@Override
public void handleResult(ResultContext resultContext) {
HashMap map = (HashMap)resultContext.getResultObject();
mapResults.put(map.get("key"), map.get("value"));
}
/**
* 返回映射
* @return 结果
*/
public HashMap getMapResults() {
retur