SpringBoot入门三十一,多数据源的使用

2022-12-22 14:01:27 来源:51CTO博客


(资料图)

一、环境配置

项目基本配置参考​​SpringBoot入门一,使用myEclipse新建一个SpringBoot项目​​,使用MyEclipse新建一个SpringBoot项目即可,数据源使用MyBatis。下面开始多数据源的整合

二、pom.xml主要配置信息

  com.baomidou  dynamic-datasource-spring-boot-starter  3.5.2 

三、配置文件添加信息

# ----------------数据库连接基本配置---------------## 连接池类型,这里我们采用hikari连接池spring.datasource.type=com.zaxxer.hikari.HikariDataSource## 设置默认的数据源或者数据源组,默认值即为masterspring.datasource.dynamic.primary=master## 严格匹配数据源,默认false. true未匹配到指定数据源时抛异常,false使用默认数据源spring.datasource.dynamic.strict=false# ----------------多数据源信息配置---------------## 默认数据源("master"为指定的数据源名称,对应spring.datasource.dynamic.primary的值)spring.datasource.dynamic.datasource.master.driver-class-name=com.mysql.cj.jdbc.Driverspring.datasource.dynamic.datasource.master.url=jdbc:mysql://127.0.0.1:3307/qfx_test?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8spring.datasource.dynamic.datasource.master.username=rootspring.datasource.dynamic.datasource.master.password=666666## 读库数据源(可多个,"db2"为指定的数据源名称,自定义即可)spring.datasource.dynamic.datasource.db2.driver-class-name=com.mysql.cj.jdbc.Driverspring.datasource.dynamic.datasource.db2.url=jdbc:mysql://127.0.0.1:3307/qfx_test2?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8spring.datasource.dynamic.datasource.db2.username=rootspring.datasource.dynamic.datasource.db2.password=666666

使用说明

1 约定  (1)配置文件所有以下划线"_"分割的数据源,下划线"_"之前的为组名称,同组名称的数据源会放在一个组下  (2)切换数据源可以是组名,也可以是具体数据源名称,组名则切换时采用负载均衡算法切换  (3)默认的数据源名称为"master",可以通过"spring.datasource.dynamic.primary"修改  (4)方法上的注解优先于类上注解2 多数据源配置方案      # 一主多从              # 多主多从              纯粹多库(记得设置primary)          混合配置    spring:               spring:                 spring:                        spring:      datasource:           datasource:             datasource:                    datasource:        dynamic:              dynamic:                dynamic:                       dynamic:          datasource:           datasource:             datasource:                    datasource:            master:             master_1:               mysql:                         master:            slave_1:            master_2:               oracle:                        slave_1:            slave_2:            slave_1:                sqlserver:                     slave_2:            slave_3:            slave_2:                postgresql:                    oracle_1:            slave_4:            slave_3:                h2:                            oracle_2:

四、多数据源使用

1.在DAO类中添加”@DS”注解信息,使用@DS切换数据源.

2."@DS"可以注解在方法上或类上,如果同时存在则采用就近原则:

方法上注解 优先于 类上注解,如果什么都不写则使用默认数据源

3.实际上到这一步多数据源配置就已经完成了

注解            结果----------------------------------------------------没有@DS            默认数据源@DS("dsName")  dsName可以为组名也可以为具体某个库的名称示例:    @DS("slave")    public interface StudentDao {        @DS("slave_1")        Student selectByPK(Long id);        List selectAll();    }

使用:DAO类

import java.util.List;import com.baomidou.dynamic.datasource.annotation.DS;import com.qfx.modules.student.entity.Student;/** * @DS可以注解在方法上或类上,如果同时存在则采用就近原则:方法上注解 优先于 类上注解 */@DS("db2")public interface StudentDao {  @DS("db2")  Student selectByPK(Long id);      List selectAll();    int insert(Student student);}

五、事物控制

多数据源建议使用@DSTransactional

@DSTransactionalpublic Map addStudent(Student student) {  return studentDao.insert(student);}

六、官网

可去官网查看详细使用说明:

​​https://gitee.com/baomidou/dynamic-datasource-spring-boot-starter ​​

标签: 使用说明 基本配置 配置文件

上一篇:Kubernetes监控手册07-监控controller-manager
下一篇:世界快看:设置及查看Linux的环境变量详细教程