springboot中处理mybatis-plus返回Map时key值转换为小写

本文介绍了在SpringBoot项目中,处理Mybatis-Plus查询结果时,如何将Map中的key转换为小写。作者在尝试过程中发现网上的解决方案并不奏效,经过源码分析,指出问题在于错误地使用了org.apache.ibatis.session.Configuration,而应该使用com.baomidou.mybatisplus.core.MybatisConfiguration进行配置。通过自定义MapWrapper和ObjectWrapperFactory,以及正确引入配置,最终解决了问题。
摘要由CSDN通过智能技术生成

各个论坛都翻了一遍,发现处理方式都大同小异,但是在引入他们的处理方式时发现不起作用,查看了源码之后发现问题

前面的处理都和其他的差不多

1.首先自定义MapWrapper

public class MapKeyLowerWrapper extends MapWrapper {

    public MapKeyLowerWrapper(MetaObject metaObject, Map<String, Object> map) {
        super(metaObject, map);
    }

    @Override
    public String findProperty(String name, boolean useCamelCaseMapping) {
        return name==null?"":name.toLowerCase() ;
    }
}

2.自定义ObjectWrapperFactory

public class MapWrapperFactory implements ObjectWrapperFactory {
    @Override
    public boolean hasWrapperFor(Object o) {
        return o != null && o instanceof Map;
    }

    @Override
    public ObjectWrapper getWrapperFor(MetaObject metaObject, Object o) {
        return new MapKeyLowerWrapper(metaObject, (Map) o);
    }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值