亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

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

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

map-underscore-to-camel-case: true

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

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

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

怎么解決這個(gè)問題呢?解決方案:

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

在mybatis-plus-extension.jar下有一個(gè)類

com.baomidou.mybatisplus.extension.MybatisMapWrapperFactory

com.baomidou.mybatisplus.extension.handlers.MybatisMapWrapper

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

重點(diǎ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

然后啟動(dòng)項(xiàng)目,我去竟然報(bào)錯(cuò)了:

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

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

啟動(dòng)報(bào)錯(cuò)詳情

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

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

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

是的,springboot沒有這樣做。通過查資料得知springboot提供了一種擴(kuò)展機(jī)制,允許你來寫一個(gè)converter來完成你想要的轉(zhuǎn)換工作。于是,我又寫了一個(gè)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);
    }
  }
}

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

返回map自動(dòng)轉(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());
    }
  };
}

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

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

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

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

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

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

相關(guān)文章

  • Java找不到或無法加載主類及編碼錯(cuò)誤問題的解決方案

    Java找不到或無法加載主類及編碼錯(cuò)誤問題的解決方案

    今天小編就為大家分享一篇關(guān)于Java找不到或無法加載主類及編碼錯(cuò)誤問題的解決方案,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-02-02
  • 一篇文章讓你徹底了解Java可重入鎖和不可重入鎖

    一篇文章讓你徹底了解Java可重入鎖和不可重入鎖

    最近正在閱讀Java ReentrantLock源碼,始終對可重入和不可重入概念理解不透徹,今天特地整理了本篇文章,讓你徹底了解Java可重入鎖和不可重入鎖,需要的朋友可以參考下
    2021-06-06
  • 使用spring oauth2框架獲取當(dāng)前登錄用戶信息的實(shí)現(xiàn)代碼

    使用spring oauth2框架獲取當(dāng)前登錄用戶信息的實(shí)現(xiàn)代碼

    這篇文章主要介紹了使用spring oauth2框架獲取當(dāng)前登錄用戶信息的實(shí)現(xiàn)代碼,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07
  • Java二分查找算法與數(shù)組處理的應(yīng)用實(shí)例

    Java二分查找算法與數(shù)組處理的應(yīng)用實(shí)例

    二分查找法,又叫做折半查找法,它是一種效率較高的查找方法。數(shù)組對于每一門編程語言來說都是重要的數(shù)據(jù)結(jié)構(gòu)之一,當(dāng)然不同語言對數(shù)組的實(shí)現(xiàn)及處理也不盡相同。Java 語言中提供的數(shù)組是用來存儲(chǔ)固定大小的同類型元素
    2022-07-07
  • 如何解決TCP?socket的阻塞問題

    如何解決TCP?socket的阻塞問題

    這篇文章主要介紹了如何解決TCP?socket的阻塞問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Spring中bean對象的裝配方式、作用域及生命周期詳解

    Spring中bean對象的裝配方式、作用域及生命周期詳解

    這篇文章主要介紹了Spring中bean對象的裝配方式、作用域及生命周期詳解,SprignBoot中?@Bean?完美的替換了了上面的這種在xml中配置的方法,使用以下方法就能讓spring在需要自動(dòng)創(chuàng)建Info對象時(shí),自動(dòng)調(diào)用這個(gè)方法,需要的朋友可以參考下
    2023-11-11
  • 基于線程、并發(fā)的基本概念(詳解)

    基于線程、并發(fā)的基本概念(詳解)

    下面小編就為大家?guī)硪黄诰€程、并發(fā)的基本概念(詳解)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-05-05
  • Java Cache詳解及簡單實(shí)現(xiàn)

    Java Cache詳解及簡單實(shí)現(xiàn)

    這篇文章主要介紹了 Java Cache詳解及簡單實(shí)現(xiàn)的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • Java中的HashSet、LinkedHashSet集合解析

    Java中的HashSet、LinkedHashSet集合解析

    這篇文章主要介紹了Java中的HashSet、LinkedHashSet集合解析,與HashSet不同的是,LinkedHashSet在內(nèi)部使用了一個(gè)雙向鏈表來維護(hù)元素的順序,因此它可以保持元素的插入順序,這使得LinkedHashSet在需要保持元素順序的場景下非常有用,需要的朋友可以參考下
    2023-11-11
  • Java中的SPI機(jī)制使用解析

    Java中的SPI機(jī)制使用解析

    這篇文章主要介紹了Java中的SPI機(jī)制使用解析,SPI意思是"服務(wù)提供者的接口",專門提供給服務(wù)提供者或者擴(kuò)展框架功能的開發(fā)者去使用的接口,SPI 將服務(wù)接口和服務(wù)實(shí)現(xiàn)分離開來,將服務(wù)調(diào)用方和服務(wù)實(shí)現(xiàn)方進(jìn)行解耦,需要的朋友可以參考下
    2023-10-10

最新評論