druid配置和使用主从数据源

以下是在Druid中配置主从数据源的步骤:

 

一、引入Druid依赖

1. 在项目的pom.xml(如果是Maven项目)中添加Druid的相关依赖,例如:

- 对于Spring Boot项目使用Druid数据源:

<dependency>

  <groupId>com.alibaba</groupId>

  <artifactId>druid-spring-boot-starter</artifactId>

  <version>版本号</version>

</dependency>

二、配置数据源

1. 主配置文件(如application.yml或application.properties)配置

- 在配置文件中,首先定义不同数据源的连接信息。

- 例如,配置两个数据源(一个主数据源和一个从数据源):

- 在application.yml中的配置:

spring:
  datasource:
    druid:
      master:
        url: jdbc:mysql://主数据库地址:端口/主数据库名?useUnicode = true&characterEncoding = utf - 8&zeroDateTimeBehavior = convertToNull&useSSL = false&serverTimezone = GMT%2B8
        username: 主用户名
        password: 主密码
        driver - class - name: com.mysql.cj.jdbc.Driver
        initial - size: 5
        min - idle: 5
        max - active: 20
        # 其他Druid相关配置如连接池属性等
      slave:
        url: jdbc:mysql://从数据库地址:端口/从数据库名?useUnicode = true&characterEncoding = utf - 8&zeroDateTimeBehavior = convertToNull&useSSL = false&serverTimezone = GMT%2B8
        username: 从用户名
        password: 从密码
        driver - class - name: com.mysql.cj.jdbc.Driver
        initial - size: 3
        min - idle: 3
        max - active: 15

        # 其他Druid相关配置

- 如果是application.properties文件:

spring.datasource.druid.master.url = jdbc:mysql://主数据库地址:端口/主数据库名?useUnicode = true&characterEncoding = utf - 8&zeroDateTimeBehavior = convertToNull&useSSL = false&serverTimezone = GMT+8

spring.datasource.druid.master.username = 主用户名

spring.datasource.druid.master.password = 主密码

spring.datasource.druid.master.driver - class - name = com.mysql.cj.jdbc.Driver

spring.datasource.druid.master.initial - size = 5

spring.datasource.druid.master.min - idle = 5

spring.datasource.druid.master.max - active = 20

spring.datasource.druid.slave.url = jdbc:mysql://从数据库地址:端口/从数据库名?useUnicode = true&characterEncoding = utf - 8&zeroDateTimeBehavior = convertToNull&useSSL = false&serverTimezone = GMT+8

spring.datasource.druid.slave.username = 从用户名

spring.datasource.druid.slave.password = 从密码

spring.datasource.druid.slave.driver - class - name = com.mysql.cj.jdbc.Driver

spring.datasource.druid.slave.initial - size = 3

spring.datasource.druid.slave.min - idle = 3

spring.datasource.druid.slave.max - active = 15

2. Java配置类(可选)

- 如果需要更复杂的配置或者在Java代码中对数据源进行额外的处理,可以创建配置类。

- 例如:

import com.alibaba.druid.pool.DruidDataSource;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration

public class DataSourceConfig {

  @Bean

  @ConfigurationProperties(prefix = "spring.datasource.druid.master")

  public DruidDataSource masterDataSource() {

    return new DruidDataSource();

  }

  @Bean

  @ConfigurationProperties(prefix = "spring.datasource.druid.slave")

  public DruidDataSource slaveDataSource() {

    return new DruidDataSource();

  }

}

3. 在业务逻辑中使用数据源

- 在需要使用数据源的地方(如MyBatis的Mapper接口或者Service层),可以通过@Qualifier注解来指定使用哪个数据源。

- 例如在Service层注入数据源:

import javax.sql.DataSource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;

@Service
public class UserService {

  @Autowired

  @Qualifier("masterDataSource")

  private DataSource masterDataSource;

  @Autowired

  @Qualifier("slaveDataSource")

  private DataSource slaveDataSource;

  // 在这里可以使用不同数据源进行数据库操作

}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值