




版權(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ù)源時(shí),application.yml的有關(guān)mybatis的配置是失效的,因?yàn)樗恢琅渲媚囊粋€(gè)數(shù)據(jù)源2application.yml配置文件3解決方法一4完整代碼4解決方法二
1配置多數(shù)據(jù)源時(shí),application.yml的有關(guān)mybatis的配置是失效的,因?yàn)樗恢琅渲媚囊粋€(gè)數(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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026屆高中語文一輪復(fù)習(xí):《課程標(biāo)準(zhǔn)》背誦篇目意象式名句
- 2025年市場營銷模擬考試題與答案
- 2025年統(tǒng)編版小升初語文暑假專項(xiàng)提升:標(biāo)點(diǎn)符號(原卷+答案)
- 2025年熔化焊接與熱切割作業(yè)考試模擬題庫(含答案)
- 2025年統(tǒng)編版八年級下冊語文期末模擬試卷(含答案解析)
- 百練百勝《周末作業(yè)(一)21.1-21.2.2》
- 2025年天津市中考英語試題 (解析版)
- 辦公室管理課件
- 辦公室養(yǎng)生知識課件
- 2025年尾礦綜合利用技術(shù)突破與生態(tài)修復(fù)技術(shù)發(fā)展報(bào)告
- 員工超年齡免責(zé)協(xié)議書范本
- 新教師培訓(xùn)角色轉(zhuǎn)化職業(yè)情感心理狀態(tài)成長培訓(xùn)課件
- 初中必背古詩文138首
- 涂裝設(shè)備生產(chǎn)項(xiàng)目數(shù)字化轉(zhuǎn)型方案
- 客戶隱私與數(shù)據(jù)保護(hù)制度
- 計(jì)算機(jī)基礎(chǔ)知識題庫1000道及參考答案(完整版)
- DTS設(shè)計(jì)及流程培訓(xùn)
- 重癥肺炎患者的護(hù)理
- 焦慮癥健康宣教課件
- 圓錐角膜科普講座
- 武漢管理咨詢行業(yè)分析
評論
0/150
提交評論