




版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 管道工程未來市場需求演變趨勢與挑戰(zhàn)預(yù)測考核試卷
- 木結(jié)構(gòu)建筑的智能家居系統(tǒng)集成考核試卷
- 糧食倉儲企業(yè)綠色經(jīng)濟(jì)企業(yè)文化建設(shè)考核試卷
- 帶式輸送機(jī)設(shè)計(jì)
- 秋游活動方案
- 《幼兒繪畫秋天》課件
- 2025年公共營養(yǎng)師之二級營養(yǎng)師考前沖刺模擬試卷A卷含答案
- 中學(xué)生課前三分安全教育
- 蛋糕促銷活動方案
- 小學(xué)一年級文明就餐教育
- (正式版)HGT 6276-2024 雙酚F型環(huán)氧樹脂
- 人教版數(shù)學(xué)三年級(下冊)面積 練習(xí)十三
- MOOC 工程圖學(xué)-中國礦業(yè)大學(xué) 中國大學(xué)慕課答案
- 雪鐵龍DS 5LS說明書
- (2024版)小學(xué)六年級數(shù)學(xué)考試新題型與答題技巧解析
- 足球公園計(jì)劃書
- 2024年高等教育經(jīng)濟(jì)類自考-00100國際運(yùn)輸與保險筆試歷年真題薈萃含答案
- 玻璃清潔機(jī)器人的研發(fā)-吸附機(jī)構(gòu)設(shè)計(jì)
- 藝術(shù)留學(xué)作品集合同模板
- 2024-2025年上海中考英語真題及答案解析
評論
0/150
提交評論