最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

mybatis-plus返回map自動轉(zhuǎn)駝峰配置操作

 更新時間:2020年11月27日 10:03:25   作者:Coder搬磚工  
這篇文章主要介紹了mybatis-plus返回map自動轉(zhuǎn)駝峰配置操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

mybatis-plus返回map自動轉(zhuǎn)駝峰配置object-wrapper-factory不生效問題解決;配置map-underscore-to-camel-case: true不生效問題解決

很多時候我們工作中查詢很多字段的時候一般是返回一個VO來接收,這個時候我們只要在yml中配置了

map-underscore-to-camel-case: true

就會自動將查詢數(shù)據(jù)庫的字段帶下劃線的屬性轉(zhuǎn)成對應(yīng)實體類VO中駝峰命名的屬性。

但是會經(jīng)常有這種場景:例如我們只查詢2個字段要返回給前端,這時候我們還需要新建一個VO,很是麻煩,我們只需要查詢返回一個Map來接收就可以了 ,但是返回到控制臺的屬性結(jié)果卻不是駝峰命名。

如下圖 ,這就是為何你yml中配置了map-underscore-to-camel-case: true也不生效的原因。(對返回map不生效

怎么解決這個問題呢?解決方案:

mybatis-plus其實已經(jīng)幫我們寫好了MybatisMapWrapperFactory類(開啟返回map結(jié)果集的下劃線轉(zhuǎn)駝峰)

在mybatis-plus-extension.jar下有一個類

com.baomidou.mybatisplus.extension.MybatisMapWrapperFactory

com.baomidou.mybatisplus.extension.handlers.MybatisMapWrapper

mybatis-plus自帶map下劃線轉(zhuǎn)駝峰配置類

重點:

我們只需要在yml中配置一下object-wrapper-factory指定MybatisMapWrapperFactory就可以了

mybatis-plus: mapper-locations: classpath:mapper/*Mapper.xml
  configuration:  call-setters-on-nulls: true
   map-underscore-to-camel-case: true
   object-wrapper-factory: com.baomidou.mybatisplus.extension.MybatisMapWrapperFactory

然后啟動項目,我去竟然報錯了:

***************************

APPLICATION FAILED TO START

***************************

Description:

Failed to bind properties under 'mybatis-plus.configuration.object-wrapper-factory' to org.apache.ibatis.reflection.wrapper.ObjectWrapperFactory:

Property: mybatis-plus.configuration.object-wrapper-factory

Value: com.baomidou.mybatisplus.extension.MybatisMapWrapperFactory

Origin: class path resource [application.yml]:99:29

Reason: No converter found capable of converting from type [java.lang.String] to type [org.apache.ibatis.reflection.wrapper.ObjectWrapperFactory]

Action:

Update your application's configuration

啟動報錯詳情

提示找不到合適的converter將string轉(zhuǎn)化為ObjectWrapperFactory對象。這又是什么鬼呢?

看字面意思,應(yīng)該是缺少對應(yīng)的converter,難道m(xù)ybatis沒有提供這個converter嗎?

簡直有點坑。而且springboot也不提供用反射機制來構(gòu)件對象的converter?

是的,springboot沒有這樣做。通過查資料得知springboot提供了一種擴展機制,允許你來寫一個converter來完成你想要的轉(zhuǎn)換工作。于是,我又寫了一個converter:

package com.bytedance.douyin.config;
import org.apache.ibatis.reflection.wrapper.ObjectWrapperFactory;
import org.springframework.boot.context.properties.ConfigurationPropertiesBinding;
import org.springframework.core.convert.converter.Converter;
import org.springframework.stereotype.Component;
 
@Component
@ConfigurationPropertiesBinding
public class ObjectWrapperFactoryConverter implements Converter<String,ObjectWrapperFactory> {
  @Override  
  public ObjectWrapperFactory convert(String source) {
    try {
      return (ObjectWrapperFactory) Class.forName(source).newInstance();
    } catch (InstantiationException | IllegalAccessException | ClassNotFoundException e) {
      throw new RuntimeException(e);
    }
  }
}

再次啟動 ok不報錯了,這時候來看看結(jié)果是不是返回map自動轉(zhuǎn)成駝峰命名。果然自動轉(zhuǎn)了

返回map自動轉(zhuǎn)駝峰命名

第二種方式:如果嫌配置Converter麻煩,不自定義Converter,那就不能在yml中配置

object-wrapper-factory: com.baomidou.mybatisplus.extension.MybatisMapWrapperFactory

教你第二種方式:直接這樣配置就搞定了

@Bean
public ConfigurationCustomizer mybatisConfigurationCustomizer(){
  return new ConfigurationCustomizer() {
    @Override    
    public void customize(org.apache.ibatis.session.Configuration configuration) {
      configuration.setObjectWrapperFactory(new MybatisMapWrapperFactory());
    }
  };
}

補充知識:解決spring boot整合mybatis時 返回map value為空字段不顯示

這兩天公司從YMP框架換到了spring boot 在整合mybatis時多表聯(lián)查,返回map的時候,發(fā)現(xiàn)map里面的value是空的情況下

字段也不顯示了 導(dǎo)致頁面取值報錯,如下圖

上網(wǎng)查了一下,在yml文件中加入一個配置就可以了

mybatis:
 configuration:
  call-setters-on-nulls: true

以上這篇mybatis-plus返回map自動轉(zhuǎn)駝峰配置操作就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • IDEA感覺不香了AI智能編程工具Cursor使用圖文教程

    IDEA感覺不香了AI智能編程工具Cursor使用圖文教程

    這篇文章主要介紹了IDEA感覺不香了AI智能編程工具Cursor使用,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-05-05
  • Java設(shè)計模式之職責鏈模式詳解

    Java設(shè)計模式之職責鏈模式詳解

    Java設(shè)計模式中有很多種類別,例如單例模式、裝飾模式、觀察者模式等。本文將為大家詳細介紹其中的職責鏈模式,感興趣的可以了解一下
    2021-12-12
  • 2018版java多線程面試題集合及答案

    2018版java多線程面試題集合及答案

    這篇文章主要為大家詳細介紹了2018版java多線程面試題集合及答案,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • springboot swagger 接口文檔分組展示功能實現(xiàn)

    springboot swagger 接口文檔分組展示功能實現(xiàn)

    這篇文章主要介紹了springboot swagger 接口文檔分組展示功能實現(xiàn),本文通過實例代碼給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧
    2024-03-03
  • JMeter導(dǎo)入自定義的Jar包的詳解教程

    JMeter導(dǎo)入自定義的Jar包的詳解教程

    這篇文章主要介紹了JMeter導(dǎo)入自定義的Jar包的詳解教程,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07
  • 基于Java實現(xiàn)多線程下載并允許斷點續(xù)傳

    基于Java實現(xiàn)多線程下載并允許斷點續(xù)傳

    這篇文章主要介紹了基于Java實現(xiàn)多線程下載并允許斷點續(xù)傳,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-03-03
  • Java數(shù)組轉(zhuǎn)換為List的四種方式

    Java數(shù)組轉(zhuǎn)換為List的四種方式

    這篇文章主要介紹了Java開發(fā)技巧數(shù)組轉(zhuǎn)List的四種方式總結(jié),每種方式結(jié)合實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-09-09
  • Spring中的AutowireCandidateResolver的具體使用詳解

    Spring中的AutowireCandidateResolver的具體使用詳解

    這篇文章主要介紹了Spring中的AutowireCandidateResolver的具體使用詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-04-04
  • mybatis-plus如何修改日志只打印SQL語句不打印查詢結(jié)果

    mybatis-plus如何修改日志只打印SQL語句不打印查詢結(jié)果

    這篇文章主要介紹了mybatis-plus如何修改日志只打印SQL語句不打印查詢結(jié)果問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • springMVC不掃描controller中的方法問題

    springMVC不掃描controller中的方法問題

    這篇文章主要介紹了springMVC不掃描controller中的方法問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02

最新評論

陵川县| 锡林浩特市| 东城区| 丹东市| 来宾市| 象州县| 秭归县| 合山市| 张家川| 元氏县| 砚山县| 湘乡市| 龙南县| 资源县| 抚州市| 邵阳县| 宁武县| 庐江县| 汤阴县| 房山区| 楚雄市| 和田县| 南陵县| 汝州市| 阳谷县| 怀柔区| 专栏| 固安县| 中山市| 津南区| 如皋市| 阿克苏市| 阿拉善右旗| 仲巴县| 刚察县| 宣恩县| 海盐县| 大荔县| 万盛区| 临潭县| 峨边|