




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第SpringBoot項目多數(shù)據(jù)源及mybatis駝峰失效的問題解決方法目錄1配置多數(shù)據(jù)源時,application.yml的有關(guān)mybatis的配置是失效的,因為他不知道配置哪一個數(shù)據(jù)源2application.yml配置文件3解決方法一4完整代碼4解決方法二
1配置多數(shù)據(jù)源時,application.yml的有關(guān)mybatis的配置是失效的,因為他不知道配置哪一個數(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
#實體類屬性: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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030中國自體干細(xì)胞療法行業(yè)市場占有率及投資前景評估規(guī)劃報告
- 2025至2030中國脫殼小麥行業(yè)發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報告
- 2025至2030中國脂類藥物活性成分行業(yè)發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報告
- 2025至2030中國股份商業(yè)銀行行業(yè)產(chǎn)業(yè)運行態(tài)勢及投資規(guī)劃深度研究報告
- 2025至2030中國耐材行業(yè)產(chǎn)業(yè)運行態(tài)勢及投資規(guī)劃深度研究報告
- 2025至2030中國美容美發(fā)用具行業(yè)產(chǎn)業(yè)運行態(tài)勢及投資規(guī)劃深度研究報告
- 2025至2030中國羅紅霉素片行業(yè)供需分析及發(fā)展前景報告
- 2025至2030中國網(wǎng)絡(luò)游戲行業(yè)市場深度分析及前景趨勢與投資報告
- 2025至2030中國縫紉機(jī)(工業(yè)縫紉機(jī))行業(yè)產(chǎn)業(yè)運行態(tài)勢及投資規(guī)劃深度研究報告
- 2025至2030中國維生素糖果行業(yè)市場占有率及投資前景評估規(guī)劃報告
- dd5e人物卡可填充格式角色卡夜版
- 教師進(jìn)企業(yè)實踐三方協(xié)議書
- 施工現(xiàn)場隱患圖片識別合集
- 山西省建設(shè)工程計價依據(jù)
- 煤礦在用安全設(shè)備檢測檢驗制度
- GB/T 24632.2-2009產(chǎn)品幾何技術(shù)規(guī)范(GPS)圓度第2部分:規(guī)范操作集
- GB/T 20428-2006巖石平板
- GB/T 11363-1989釬焊接頭強度試驗方法
- 內(nèi)調(diào)焦準(zhǔn)距式望遠(yuǎn)系統(tǒng)光學(xué)設(shè)計2022年
- 核磁共振的發(fā)展史課件
- 切紙機(jī)安全操作規(guī)程標(biāo)準(zhǔn)范本
評論
0/150
提交評論