mybatis返回map大小写的问题,配置全局转大小写

您所在的位置:网站首页 springboot返回map mybatis返回map大小写的问题,配置全局转大小写

mybatis返回map大小写的问题,配置全局转大小写

2023-11-02 19:12| 来源: 网络整理| 查看: 265

在使用mybatis的时候,经常会用到resultType=“map” 返回map类型的数据。发现mysql默认返回的都是小写的, oracle返回的都是大写

如果项目换数据库了, 会导致有很大的工作量, 所以我就全局配置了转大写

配置一共分为2步 第一步: 需要重写map的包装器将Map的key全部转换为大写 package com.qymj.mybatis.objectwrapperfactory; import java.util.Map; import org.apache.ibatis.reflection.MetaObject; import org.apache.ibatis.reflection.wrapper.MapWrapper; /** * 重写map的包装器将Map的key全部转换为小写 * */ public class MapKeyUpperWrapper extends MapWrapper { public MapKeyUpperWrapper(MetaObject metaObject, Map map) { super(metaObject, map); } @Override public String findProperty(String name, boolean useCamelCaseMapping) { return name==null?"":name.toUpperCase() ; } }   重写map的包装器工厂,返回已经实现的MapKeyUpperWrapper package com.qymj.mybatis.objectwrapperfactory; import java.util.Map; import org.apache.ibatis.reflection.MetaObject; import org.apache.ibatis.reflection.wrapper.ObjectWrapper; import org.apache.ibatis.reflection.wrapper.ObjectWrapperFactory; /** * 重写map的包装器工厂,返回已经实现的MapKeyLowerWrapper * @author xujia */ public class MapWrapperFactory implements ObjectWrapperFactory { @Override public boolean hasWrapperFor(Object object) { return object != null && object instanceof Map; } @Override public ObjectWrapper getWrapperFor(MetaObject metaObject, Object object) { return new MapKeyUpperWrapper(metaObject, (Map) object); } } 第二步: 在mybatis的配置文件中配置

在mybatis的配置文件中配置,需要注意一点 配置这个是需要有顺序的

需要在plugins之上

  这样mybatis返回的map的key就实现大小写自由了


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3