mybatisPlus返回Map类型的集合(两列字段,一列为key,一列为value)

这篇具有很好参考价值的文章主要介绍了mybatisPlus返回Map类型的集合(两列字段,一列为key,一列为value)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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://www.toymoban.com/news/detail-548501.html

到了这里,关于mybatisPlus返回Map类型的集合(两列字段,一列为key,一列为value)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java中用Stream流对List对象集合转Map时key值重复的操作

    看完你还不懂,你直接喷·· 定义: 1.List是一个装Dto对象的集合 2.Dto里面有ID属性,name属性等等 3.Dto里面的ID会重复  现在要把List转成以ID为key值的map,明显key不能重复啊,所以应该怎么操作呢? (需要你有java8Stream流的基本概念,map的基本概念)   操作1:重复key,选择保留

    2024年01月18日
    浏览(59)
  • 深入解析MyBatisPlus:手动编写mapper和mapper.xml层实现IPage<YourEntity>返回类型

    在使用MyBatisPlus进行数据访问时,通常会涉及到编写mapper接口和mapper.xml文件来定义CRUD操作。在一些场景中,我们需要进行分页查询,并返回一个包含分页信息的数据集合。在这种情况下,我们可以使用MyBatisPlus提供的IPage接口来实现分页查询,并将其返回类型设置为 IPageYour

    2024年02月16日
    浏览(44)
  • Mybatis查询返回Map<String,Object>类型

    这篇我们来说一下Mybatis的查询结果返回Map类型。 首先我们在企业开发中是很少使用到Map返回类型的,很多都是直接返回一个对象实体。尤其是苞米豆出了MP框架之后,XML都是很少写的。 那么在什么情况下需要使用Map来作为返回的结果类型呢? 案例:有一个模块A和模块B,A模

    2024年02月02日
    浏览(41)
  • MyBatis 查询 MySQL 实现返回 List<Map> 或 Map 类型数据操作

      MyBatis 查询 MySQL 数据库,返回结果可以是具体的类、Map、ListMap 等等。将查询结果返回 Map 类型的优点是,不需要为本次查询额外创建类。如果只查询某几个特定的列,且不想额外创建类的话,就可以将结果返回 Map 或 ListMap。   如果能明确查询结果只有一条记录时,返

    2023年04月09日
    浏览(85)
  • SpringBoot返回前端Long类型字段丢失精度问题及解决方案

    Java服务端返回Long整型数据给前端,JS会自动转换为Number类型。而Long类型能表示的最大值为(),当数值超过JS中Number类型的最大值()时,就会丢失精度。 首先,引入依赖。 新建一个自定义大数据序列化类,如下: 新建Jackson配置类 本文针对Java服务端返回Long整型数据给前端时

    2024年03月22日
    浏览(105)
  • js对map排序,后端返回有序的LinkedHashMap类型时前端获取后顺序依旧从小到大的解决方法

    js对map排序,后端返回有序的LinkedHashMap类型时前端获取后顺序依旧从小到大的解决方法 浏览器获取结果变成了: [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0vkNViJ4-1683592135147)(C:UsersquyanliangAppDataRoamingTyporatypora-user-images1683592070705.png)] 所以

    2024年02月05日
    浏览(51)
  • Java实现方法接口入参同时包含文件、字段和对象等多种类型。HTTP请求返回415状态,Content type ‘application/octet-stream‘ not supported错误。

    方法一:对象不使用注解 使用Postman测试,直接将subject对象的字段填在key的位置 方法二:对象使用注解@RequestPart 使用Postman测试,将字段包装在subject对象里,使用Content type:application/json的内容类型 注:方法二在开发本地测试执行成功,但是在测试人员机子下不通过,执行报

    2024年02月12日
    浏览(41)
  • mybatisPlus查询排除某个字段

    在 MyBatis Plus 中,可以使用 @TableField 注解来排除某个字段在查询中的使用。@TableField 注解提供了一些属性可以用于指定字段的行为,其中 exist 属性可以控制字段是否在 SQL 语句中出现。 以下是一个示例代码,展示如何使用 @TableField 注解排除某个字段在查询中的使用: 在上述

    2024年02月12日
    浏览(59)
  • 解决用MybatisPlus修改字段时会自动忽略传值为null的字段

    产生原因 我们使用mybatis-plus框架的时候会产生一个很尴尬的情况,在使用mybatis-plus的自带封装的update的方法的时候,如果你想要修改某个字段为null值,则会自动忽略修改你这个字段,导致这个字段还是原来未修改前的值 。 解决方法 根据查阅相关资料,总结出以下几点解决

    2024年02月16日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包