




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第SpringBoot項(xiàng)目多數(shù)據(jù)源及mybatis駝峰失效的問(wèn)題解決方法目錄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就得寫(xiě)全名resultType="com.liyh.entity.User",
#但是如果配置了別名,就可以不用寫(xiě)全路徑直接寫(xiě)resultType="User"即可)
type-aliases-package:com.liyh.entity
#配置mapper的掃描,找到所有的mapper.xml映射文件
mapper-locations:classpath*:mapper/**/*Mapper.xml
#使用駝峰命名
#數(shù)據(jù)庫(kù)表列: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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 四平職業(yè)大學(xué)《計(jì)算方法概論》2023-2024學(xué)年第二學(xué)期期末試卷
- 茂名職業(yè)技術(shù)學(xué)院《建筑工程經(jīng)濟(jì)管理與法規(guī)》2023-2024學(xué)年第二學(xué)期期末試卷
- 三亞中瑞酒店管理職業(yè)學(xué)院《食品科技》2023-2024學(xué)年第二學(xué)期期末試卷
- 荊楚理工學(xué)院《能源低碳技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 河套學(xué)院《合唱與指揮Ⅳ》2023-2024學(xué)年第二學(xué)期期末試卷
- 早期教育嬰幼兒衛(wèi)生與保健
- 公共衛(wèi)生服務(wù)規(guī)范解讀
- 中秋晚會(huì)流程策劃書(shū)
- 心理健康課件教學(xué)
- 大學(xué)生命安全教育主題班會(huì)
- MOOC 工程圖學(xué)-中國(guó)礦業(yè)大學(xué) 中國(guó)大學(xué)慕課答案
- 孕婦學(xué)?;顒?dòng)策劃方案
- 雪鐵龍DS 5LS說(shuō)明書(shū)
- (2024版)小學(xué)六年級(jí)數(shù)學(xué)考試新題型與答題技巧解析
- 足球公園計(jì)劃書(shū)
- 2024年高等教育經(jīng)濟(jì)類自考-00100國(guó)際運(yùn)輸與保險(xiǎn)筆試歷年真題薈萃含答案
- 玻璃清潔機(jī)器人的研發(fā)-吸附機(jī)構(gòu)設(shè)計(jì)
- 藝術(shù)留學(xué)作品集合同模板
- 2024-2025年上海中考英語(yǔ)真題及答案解析
- GB/T 19510.213-2023光源控制裝置第2-13部分:LED模塊用直流或交流電子控制裝置的特殊要求
- 2024年橋式起重機(jī)司機(jī)(中級(jí))職業(yè)技能考試題庫(kù)(職校培訓(xùn))
評(píng)論
0/150
提交評(píng)論