SpringBoot项目多数据源及mybatis驼峰失效的问题解决方法_第1页
SpringBoot项目多数据源及mybatis驼峰失效的问题解决方法_第2页
SpringBoot项目多数据源及mybatis驼峰失效的问题解决方法_第3页
SpringBoot项目多数据源及mybatis驼峰失效的问题解决方法_第4页
SpringBoot项目多数据源及mybatis驼峰失效的问题解决方法_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第SpringBoot项目多数据源及mybatis驼峰失效的问题解决方法目录1配置多数据源时,application.yml的有关mybatis的配置是失效的,因为他不知道配置哪一个数据源2application.yml配置文件3解决方法一4完整代码4解决方法二

1配置多数据源时,application.yml的有关mybatis的配置是失效的,因为他不知道配置哪一个数据源

2application.yml配置文件

server:

#服务器的HTTP端口

port:8097

spring:

#配置数据源

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不进行配置,resultType就得写全名resultType="com.liyh.entity.User",

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

type-aliases-package:com.liyh.entity

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

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

#使用驼峰命名

#数据库表列: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中设置配置

@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();

*配置事务管理器,不然事务不起作用

*@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中设置驼峰

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();

*配置事务管理器,不然事务不起作用

*@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. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论