当前位置:   article > 正文

达梦数据库+mybatis返回字段转小写_达梦sql语句返回小写

达梦sql语句返回小写

1、开启mybatis驼峰命名规则

  1. mybatis:
  2. configuration:
  3. #使用mybatis驼峰功能将达梦返回字段转小写
  4. map-underscore-to-camel-case: true

2、继承MapWrapper

  1. import org.apache.ibatis.reflection.MetaObject;
  2. import org.apache.ibatis.reflection.wrapper.MapWrapper;
  3. import java.util.Map;
  4. public class SqlFieldToLowerCase extends MapWrapper {
  5. public SqlFieldToLowerCase(MetaObject metaObject, Map<String, Object> map) {
  6. super(metaObject, map);
  7. }
  8. @Override
  9. public String findProperty(String name, boolean useCamelCaseMapping) {
  10. if (useCamelCaseMapping) {
  11. //查询字段转小写
  12. return name == null ? null : name.toLowerCase();
  13. }
  14. return name;
  15. }
  16. }

3、实现ObjectWrapperFactory

  1. import com.alibaba.fastjson.JSONObject;
  2. import org.apache.ibatis.reflection.MetaObject;
  3. import org.apache.ibatis.reflection.wrapper.ObjectWrapper;
  4. import org.apache.ibatis.reflection.wrapper.ObjectWrapperFactory;
  5. import org.apache.ibatis.session.Configuration;
  6. import org.mybatis.spring.boot.autoconfigure.ConfigurationCustomizer;
  7. import org.springframework.context.annotation.Bean;
  8. import org.springframework.stereotype.Component;
  9. import java.util.Map;
  10. @Component
  11. public class SqlFieldToLowerCaeFactory implements ObjectWrapperFactory {
  12. @Override
  13. public boolean hasWrapperFor(Object o) {
  14. return o instanceof Map;
  15. }
  16. @Override
  17. public ObjectWrapper getWrapperFor(MetaObject metaObject, Object o) {
  18. return new SqlFieldToLowerCase(metaObject, (Map) o);
  19. }
  20. /**
  21. * 使用该方式object-wrapper-factory: com.demo.config.SqlFieldToLowerCaeFactory
  22. * 会报类型转换异常所以使用下面这种方式
  23. * @return
  24. */
  25. @Bean
  26. public ConfigurationCustomizer mybatisConfigurationCustomizer() {
  27. return new ConfigurationCustomizer() {
  28. @Override
  29. public void customize(Configuration configuration) {
  30. configuration.setObjectWrapperFactory(new SqlFieldToLowerCaeFactory());
  31. }
  32. };
  33. }
  34. }

注意事项:mybatis返回结果为fastjson:JSONObject类型时,使用该方式将返回字段转小写可能会在遇见达梦数据库字段类型为CLOB、TEXT等类型字段报JSON解析内存溢出

可以尝试在数据库链接上拼接clobAsString=1 或者将字段类型改为varchar

jdbc:dm://127.0.0.1:5236/DEMO?clobAsString=1

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/一键难忘520/article/detail/823132
推荐阅读
相关标签
  

闽ICP备14008679号