第7章 JdbcTemplate 数据连接模板
7.1 JdbcTemplate 入门
7.2 使用 JdbcTemplate 操作数据库
7.3 实战:实现 JdbcTemplate 多数据源
7.3 实战:实现 JdbcTemplate 多数据源
7.3.1 什么是多数据源
所谓多数据源,其实就是在一个项目中使用
多个数据库实例中的数据库
或者同一个数据库实例中多个不同的库
。
在实际开发中可能会遇到需要配置多个数据源的情况,比如项目需要使用业务数据库和日志数据库等多个数据库,或者需要使用多种数据库(如 MySQL、Oracle、SQL Server 等)。
JdbcTemplate 多数据源的配置比较简单,因为一个 JdbcTemplate 实例,需要操作哪个数据源就使用对应的 JdbcTemplate 实例即可。
7.3.2 配置 JdbcTemplate 多数据源
1、配置多数据源
application.properties
# 配置 JdbcTemplate 多数据源
# 数据源1(首选/主要的):
spring.datasource.primary.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.primary.jdbc-url=jdbc:mysql://localhost:3306/jdbc_test
spring.datasource.primary.username=root
spring.datasource.primary.password=******
# 数据源2(次选/次要的):
spring.datasource.secondary.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.secondary.jdbc-url=jdbc:mysql://localhost:3306/jdbc_test2
spring.datasource.secondary.username=root
spring.datasource.secondary.password=******
说明:
在上面的示例中,我们重新创建了 jdbc_test 和 jdbc_test2 两个数据库,再通过 jdbc_test 和 jdbc_test2 两个数据库演示多数据库的情况。我们可以看到上面的配置和原先单数据源的配置有些不同:
(1)在 application.properties 配置文件中添加了两个数据源,通过 primary 和 secondary 来区分,分别对应的是 jdbc_test 和 jdbc_test2 数据库。
(2)单数据源的数据库连接使用 spring.datasource.url 配置项,多数据源使用 spring.datasource.*.jdbc-url 配置项。
附录
单数据源配置案例:
# MySQL数据源配置(单数据源配置) spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/jdbctest?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&useSSL=true spring.datasource.username=root spring.datasource.password=******
2、配置 JDBC 初始化
DataSourceConfig.java
package com.example.jdbctemplateproject.config;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.jdbc.DataSourceBuilder;
import or