mybatisPlus返回Map类型的集合
作者:林卓淇 发布时间:2022-01-31 13:37:07
标签:mybatisPlus,返回,Map
1、自定义实现该类
package com.linmain.dict.handle;
import org.apache.ibatis.session.ResultContext;
import org.apache.ibatis.session.ResultHandler;
import java.util.HashMap;
import java.util.Map;
/**
* @Author linzhuoqi
* @Date 2023/3/9
* @Eamil 1580752420@qq.com
* @Version
* @Description 新建一个mappedResults,每次感应到数据进来,处理下然后塞进去。
*/
@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;
}
}
2、在抽象dao层书写返回map集合类型的方法
Map<String,String> pageByTypeId(Serializable typeId);
3、在XXXDao.xml文件中书写sql语句和resultMap类型
<!-- result类型 -->
<resultMap id="mapResult" type="java.util.HashMap">
<result property="key" column="data_value"/>
<result property="value" column="data_name"/>
</resultMap>
<!-- 上述方法的sql语句 -->
<select id="pageByTypeId" resultMap="mapResult">
select data_name, data_value
from dict_data
where dict_id = #{typeId}
and is_delete = '0';
</select>
4、如何使用
@Override
public Map<String,String> getAllByTypeId(Serializable typeId) {
//获取一个sqlsession对象,true:自动提交
SqlSession sqlSession = sqlSessionFactory.openSession(true);
//创建一个结果处理器
MapResultHandle<String, String> mapResultHandle = new MapResultHandle<>();
//进行数据查询和结果封装
sqlSession.select("com.linmain.dict.dao.DictDataDao.pageByTypeId", typeId, mapResultHandle);
Map<String, String> mappedResults = mapResultHandle.getMappedResults();
return mappedResults;
}
来源:https://blog.csdn.net/u011746120/article/details/129441077
0
投稿
猜你喜欢
- java arrayList遍历的四种方法及Java中ArrayList类的用法package com.test;import java.u
- 介绍跨域CORS,全称是"跨域资源共享"(Cross-origin resource sharing)当页面发出跨域请求
- 现假设某个公司采用公用电话来传递数据,数据是四位的整数,在传递过程中是加密的。加密规则是每位数字都加上5,然后再用除以10的余数代替该数字,
- 问题背景: 我要在一个表单里同时一次性提交多名乘客的个人信息到SpringMVC,前端HTML和SpringMVC Controller里该
- 首先给出代码和输出://import java.sql.DriverManager;//import java.sql.SQLExcepti
- 推荐IntelliJ IDEA 2020.2.3永久破解激活教程(亲测有效)正文开始今天将idea更新到了最新版2020.2.3,结果发现新
- 本文实例为大家分享了java微信公众号支付示例代码,供大家参考,具体内容如下开始之前,先准备好:appid、商家号、商户密匙。工具类:MD5
- 什么是枚举?枚举是JDK5引入的新特性。在某些情况下,一个类的对象是固定的,就可以定义为枚举。在实际使用中,枚举类型也可以作为一种规范,保障
- 1.前提已经配置Sleuth,可参考2.什么是Zipkin?官网:https://zipkin.io/大规模分布式系统的APM工具( App
- 分类1.简单工厂模式2.工厂方法模式3.抽象工厂模式案例需求根据蛋糕的不同口味,分别创建苹果味和香蕉味的蛋糕实例方案一:简单工厂模式定义蛋糕
- C#串口模块的使用。使用VS .net框架下WinForm程序应用开发。C#开发的串口通信小工具。相比于QT添加的串口类,WinForm是通
- 场景需要判断,首字母是否是英文字母。有人说,那还不简单么,StringUtils.isAlpha() 就可以搞定。 笔者也是这么想的,结果却
- 首先说明这是我一个不熟悉idea和SSM框架的新手小白遇到的坑,适合用idea搭建SSM框架的小伙伴看一看,老鸟就不用看了。以下为详细步骤(
- 这篇文章主要介绍了简单了解Spring中BeanFactory与FactoryBean的区别,文中通过示例代码介绍的非常详细,对大家的学习或
- springboot结合maven配置不同环境的profile1、在spring-boot中新建配置文件spring-boot不同环境配置文
- 最近公司需要做一个告警页面的功能,需要分页,查了很多资料发现PageHelper比较合适故写一篇从零开始的PageHelper使用的教程,也
- 现象: 1. 表面现象: 方法中输出的日志, 日志文件中找不到, 也没有任何报错(即@Async标注的方法没有执行, 也没有报错)2. 分析
- 前言接口调试是每个软件开发从业者必不可少的一项技能,一个项目的的完成,可能接口测试调试的时间比真正开发写代码的时间还要多,几乎是每个开发的日
- 目录1. SpringCloud特点2. 分布式系统的三个指标CAP3. Eureka4. SpringCloud Demo4.1 regi
- 方案一: 采用reflections 框架(此框架依赖com.google.guava)1、reflections框架地址:https://