有时候项目处理的数据的时候数据都存在不同的数据库里面,这个时候就需要我们自己配置其他的数据源了,这里我使用的是最新的Spring boot2.1.3的版本,之前在1.x的时候也使用过多数据源,没有记录下来,这次有很多坑都需要注意,所以记录了下来。
1、引入依赖
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.0.0</version>
</dependency>
<!-- 阿里巴巴连接驱动 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.13</version>
</dependency>
注意:自从Spring boot2.0开始大量的依赖跟随创建项目的时候更改,还有像上面这种没有包含进项目的第三方集成依赖就需要去官网查看一下最新的的依赖了,如果不知道最合适的版本,就使用最新的版本。后面使用的小版本都在不同程度上面更新了不同的依赖及第三方依赖。不然就会经常出错,这是使用Springboot最需要记住的地方。
1、创建项目包含的集成依赖是自动帮你弄好了版本
2、第三方集成依赖就如上面这个阿里巴巴的连接依赖这种需要版本的
2、配置文件配置数据源
spring:
#数据源
datasource:
#连接池的类型
type: com.alibaba.druid.pool.DruidDataSource
#连接驱动
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://ip?serverTimezone=GMT%2B8
username: username
password: password
druid:
domestic1: #国外1
url: jdbc:mysql://ip?serverTimezone=GMT%2B8
username: username
password: password
domestic2: #国外2
url: jdbc:mysql://ip?serverTimezone=GMT%2B8
username: username
password: password
#初始大小
initial-size: 1
#最大连接数
max-active: 100
#最最小空闲连接数
min-idle: 10
#配置获取连接等待超时的时间
max-wait: 60000
default-auto-commit: true
#池的准备好的语句
# pool-prepared-statements: true
#每个连接大小的MAX池准备语句
max-pool-prepared-statement-per-connection-size: 20
注意:我的mysql数据库版本是8.x的,因此在url后面需要添加一些参数, mysql5.7及以前的不需要添加某些参数,自动8以后的版本就需要添加一些参数,根据不同的情况添加,有的在数据库里面设置,默认的设置就需要在其他使用的地方添加兼容的参数,不然就各种奇怪的参数,我的另外两篇就记录了8.x版本可能出现的某些错误。
3、查看项目结构
-
java区域结构
-
resources区域结构
4、配置数据源小告示
多数据源一定需要一个主数据源和其他从数据源下面的是我的数据源结构,然后再看其内容