SpringBoot項(xiàng)目多數(shù)據(jù)源及mybatis駝峰失效的問題解決方法_第1頁
SpringBoot項(xiàng)目多數(shù)據(jù)源及mybatis駝峰失效的問題解決方法_第2頁
SpringBoot項(xiàng)目多數(shù)據(jù)源及mybatis駝峰失效的問題解決方法_第3頁
SpringBoot項(xiàng)目多數(shù)據(jù)源及mybatis駝峰失效的問題解決方法_第4頁
SpringBoot項(xiàng)目多數(shù)據(jù)源及mybatis駝峰失效的問題解決方法_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第SpringBoot項(xiàng)目多數(shù)據(jù)源及mybatis駝峰失效的問題解決方法目錄1配置多數(shù)據(jù)源時,application.yml的有關(guān)mybatis的配置是失效的,因?yàn)樗恢琅渲媚囊粋€數(shù)據(jù)源2application.yml配置文件3解決方法一4完整代碼4解決方法二

1配置多數(shù)據(jù)源時,application.yml的有關(guān)mybatis的配置是失效的,因?yàn)樗恢琅渲媚囊粋€數(shù)據(jù)源

2application.yml配置文件

server:

#服務(wù)器的HTTP端口

port:8097

spring:

#配置數(shù)據(jù)源

datasource:

master:

jdbc-url:jdbc:mysql://localhost:3306/testuseSSL=falseserverTimezone=UTC

username:root

password:root

driver-class-name:com.mysql.cj.jdbc.Driver

test:

jdbc-url:jdbc:mysql://localhost:3306/test2useSSL=falseserverTimezone=UTC

username:root

password:root

driver-class-name:com.mysql.cj.jdbc.Driver

#MyBatis配置

mybatis:

#搜索指定包別名

#(如果typeAliasesPackage不進(jìn)行配置,resultType就得寫全名resultType="com.liyh.entity.User",

#但是如果配置了別名,就可以不用寫全路徑直接寫resultType="User"即可)

type-aliases-package:com.liyh.entity

#配置mapper的掃描,找到所有的mapper.xml映射文件

mapper-locations:classpath*:mapper/**/*Mapper.xml

#使用駝峰命名

#數(shù)據(jù)庫表列:user_name

#實(shí)體類屬性:userName

configuration:

map-underscore-to-camel-case:true

3解決方法一

1application.yml的配置駝峰保留

2定義全局的配置

@Bean

@ConfigurationProperties(prefix="mybatis.configuration")

publicorg.apache.ibatis.session.Configurationconfiguration(){

returnneworg.apache.ibatis.session.Configuration();

}

3在sqlSessionFactory中設(shè)置配置

@Primary

@Bean(name="masterSqlSessionFactory")

publicSqlSessionFactorysqlSessionFactory(@Qualifier("masterDataSource")DataSourcedataSource,org.apache.ibatis.session.Configurationconfiguration)throwsException{

SqlSessionFactoryBeansqlSessionFactoryBean=newSqlSessionFactoryBean();

sqlSessionFactoryBean.setDataSource(dataSource);

sqlSessionFactoryBean.setMapperLocations(newPathMatchingResourcePatternResolver()

.getResources("classpath*:mapper/*.xml"));

sqlSessionFactoryBean.setTypeAliasesPackage("com.liyh.entity");

sqlSessionFactoryBean.setConfiguration(configuration);

returnsqlSessionFactoryBean.getObject();

}

4完整代碼

packagecom.liyh.config;

importorg.apache.ibatis.session.SqlSessionFactory;

importorg.mybatis.spring.SqlSessionFactoryBean;

importorg.mybatis.spring.annotation.MapperScan;

importorg.springframework.beans.factory.annotation.Qualifier;

importperties.ConfigurationProperties;

importorg.springframework.boot.jdbc.DataSourceBuilder;

importorg.springframework.context.annotation.Bean;

importorg.springframework.context.annotation.Configuration;

importorg.springframework.context.annotation.Primary;

importorg.springframework.core.io.support.PathMatchingResourcePatternResolver;

importorg.springframework.jdbc.datasource.DataSourceTransactionManager;

importorg.springframework.transaction.PlatformTransactionManager;

importjavax.sql.DataSource;

@Configuration

@MapperScan(basePackages={"com.liyh.mapper"},sqlSessionFactoryRef="masterSqlSessionFactory")

publicclassMybatisMasterConfig{

@Bean(name="masterDataSource")

@ConfigurationProperties(prefix="spring.datasource.master")

publicDataSourcedataSource(){

returnDataSourceBuilder.create().build();

*配置事務(wù)管理器,不然事務(wù)不起作用

*@return

@Bean

publicPlatformTransactionManagertransactionManager(){

returnnewDataSourceTransactionManager(this.dataSource());

@Bean

@ConfigurationProperties(prefix="mybatis.configuration")

publicorg.apache.ibatis.session.Configurationconfiguration(){

returnneworg.apache.ibatis.session.Configuration();

@Primary

@Bean(name="masterSqlSessionFactory")

publicSqlSessionFactorysqlSessionFactory(@Qualifier("masterDataSource")DataSourcedataSource,org.apache.ibatis.session.Configurationconfiguration)throwsException{

SqlSessionFactoryBeansqlSessionFactoryBean=newSqlSessionFactoryBean();

sqlSessionFactoryBean.setDataSource(dataSource);

sqlSessionFactoryBean.setMapperLocations(newPathMatchingResourcePatternResolver()

.getResources("classpath*:mapper/*.xml"));

sqlSessionFactoryBean.setTypeAliasesPackage("com.liyh.entity");

sqlSessionFactoryBean.setConfiguration(configuration);

returnsqlSessionFactoryBean.getObject();

}

4解決方法二

1在sqlSessionFactory返回的bean中設(shè)置駝峰

sqlSessionFactoryBean.getObject().getConfiguration().setMapUnderscoreToCamelCase(true);

@Primary

@Bean(name="masterSqlSessionFactory")

publicSqlSessionFactorysqlSessionFactory(@Qualifier("masterDataSource")DataSourcedataSource)throwsException{

SqlSessionFactoryBeansqlSessionFactoryBean=newSqlSessionFactoryBean();

sqlSessionFactoryBean.setDataSource(dataSource);

sqlSessionFactoryBean.setMapperLocations(newPathMatchingResourcePatternResolver()

.getResources("classpath*:mapper/*.xml"));

sqlSessionFactoryBean.setTypeAliasesPackage("com.liyh.entity");

sqlSessionFactoryBean.getObject().getConfiguration().setMapUnderscoreToCamelCase(true);

returnsqlSessionFactoryBean.getObject();

}

2完整代碼

packagecom.liyh.config;

importorg.apache.ibatis.session.SqlSessionFactory;

importorg.mybatis.spring.SqlSessionFactoryBean;

importorg.mybatis.spring.annotation.MapperScan;

importorg.springframework.beans.factory.annotation.Qualifier;

importperties.ConfigurationProperties;

importorg.springframework.boot.jdbc.DataSourceBuilder;

importorg.springframework.context.annotation.Bean;

importorg.springframework.context.annotation.Configuration;

importorg.springframework.context.annotation.Primary;

importorg.springframework.core.io.support.PathMatchingResourcePatternResolver;

importorg.springframework.jdbc.datasource.DataSourceTransactionManager;

importorg.springframework.transaction.PlatformTransactionManager;

importjavax.sql.DataSource;

@Configuration

@MapperScan(basePackages={"com.liyh.mapper"},sqlSessionFactoryRef="masterSqlSessionFactory")

publicclassMybatisMasterConfig{

@Bean(name="masterDataSource")

@ConfigurationProperties(prefix="spring.datasource.master")

publicDataSourcedataSource(){

returnDataSourceBuilder.create().build();

*配置事務(wù)管理器,不然事務(wù)不起作用

*@return

@Bean

publicPlatformTransactionManagertransactionManager(){

returnnewDataSourceTransactionManager(this.dataSource());

@Bean

@ConfigurationProperties(prefix="mybatis.configuration")

publicorg.apache.ibatis.session.Configurationconfiguration(){

returnneworg.ap

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論