乐趣区

关于java:MyBatisPlus之实现多数据源

多数据源的目标在于一个代码模块可调用多个数据库的数据进行某些业务操作。

MyBatis-Plus 开发者写了一个多数据源叫 dynamic-datasource-spring-boot-starter,非常简单易用。

dynamic-datasource-spring-boot-starter 文档

官网文档局部截图:

第三方集成的,基本上是目前比拟支流的 (用的比拟多)。

一、增加 Maven 依赖

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
    <version>2.5.4</version>
</dependency>

二、配置文件批改 (application.yml)

spring:
  datasource:
    dynamic:
      primary: db1 #设置默认的数据源, 默认值为 master
      datasource:
        db1:  #数据源 db1
          driver-class-name: com.mysql.jdbc.Driver
          url: jdbc:mysql://127.0.0.1:3306/wordpress_master?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
          username: root
          password: 123456
        db2: #数据源 db2
          driver-class-name: com.mysql.jdbc.Driver
          url: jdbc:mysql://127.0.0.1:3306/wordpress_slave?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
          username: root
          password: 123456
      type: com.alibaba.druid.pool.DruidDataSource
      druid:
        initial-size: 10
        max-active: 100
        min-idle: 10
        max-wait: 60000
        pool-prepared-statements: true
        max-pool-prepared-statement-per-connection-size: 20
        time-between-eviction-runs-millis: 60000
        min-evictable-idle-time-millis: 300000
        #Oracle 须要关上正文
        #validation-query: SELECT 1 FROM DUAL
        test-while-idle: true
        test-on-borrow: false
        test-on-return: false
        stat-view-servlet:
          enabled: true
          url-pattern: /druid/*
          #login-username: admin
          #login-password: admin
        filter:
          stat:
            log-slow-sql: true
            slow-sql-millis: 1000
            merge-sql: false
          wall:
            config:
              multi-statement-allow: true

三、实现成 1、2 步后,启动利用

如果控制台不报错且呈现如下图所示,就示意胜利整合:

四、注意事项

启动主类须要排除 Druid 相干依赖,否则会呈现如下谬误:

***************************
APPLICATION FAILED TO START
***************************

Description:

Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.

Reason: Failed to determine a suitable driver class

解决办法,加上如下代码即可:

@SpringBootApplication(exclude = DruidDataSourceAutoConfigure.class)

本文局部内容起源我的博客。

退出移动版