Springboot2.x配置多源数据库
项目使用了Springboot+Mybatis+durid连接池
注意
1. 如果使用多源数据库配置, 在
application.properties
文件里对Mybatis的配置将失效, 也就是说, 如果项目开启了自动转换驼峰命名法, 需要在配置类里面再次开启, 否则会查不到数据库里的数据
2. 现在很多人都在使用注解的方式写SQL, 如果不使用xml文件, 就不需要配置xml的路径, 下面代码中会说到
配置步骤
- 首先在
application.properties
文件里面配置2个数据库的信息, 其中一个主数据库, 一个从数据库
#配置数据库
## 主数据库
master.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
master.datasource.url=jdbc:mysql://127.0.0.1:3306/test1?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8
master.datasource.username =root
master.datasource.password =1234
## 从数据库
second.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
second.datasource.url=jdbc:mysql://127.0.0.1:3306/test2?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8
second.datasource.username =root
second.datasource.password =1234
- 创建2个数据源配置类, 这里使用了durid连接池
- master
import javax.sql.DataSource;
import com.alibaba.druid.pool.DruidDataSource;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import javax.sql.DataSource;
/**
* Description:这里注意, 如果Mybatis使用注解的形式写SQL, 下面的MAPPER_LOCATION就不用配置了
* 使用配置类的方式配置数据库连接, 需要在配置类里面开启驼峰命名法的自动转换
*/
@Configuration
// 扫描 Mapper 接口并容器管理
@MapperScan(basePackages = MasterDataSourceConfig