MyBatis-Plus实现多数据源的示例代码

作者:youcongtech 时间:2023-11-11 12:58:11 

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

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

dynamic-datasource-spring-boot-starter文档

官方文档部分截图:

MyBatis-Plus实现多数据源的示例代码

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

一、添加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步后,启动应用

如果控制台不报错且出现如下图所示,就表示成功整合:

MyBatis-Plus实现多数据源的示例代码

四、注意事项

启动主类需要排除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)

来源:https://segmentfault.com/a/1190000038171792

标签:MyBatis,Plus,多数据源
0
投稿

猜你喜欢

  • Java NIO实战之多人聊天室

    2022-02-28 15:05:00
  • Quartz.Net调度框架配置解析

    2021-10-13 01:35:02
  • Java反射(Class类,Class对象获取)

    2021-06-27 05:55:24
  • java按指定编码写入和读取文件内容的类分享

    2023-06-18 10:13:01
  • c#图像截取实例

    2022-02-21 07:49:58
  • WinForm实现为TextBox设置水印文字功能

    2023-06-09 21:15:38
  • java9迁移注意问题总结

    2022-07-19 11:26:30
  • 解决Java中的java.io.IOException: Broken pipe问题

    2022-01-24 00:40:34
  • JAVA中String介绍及常见面试题小结

    2021-11-19 03:38:20
  • Jackson 反序列化时实现大小写不敏感设置

    2021-11-18 06:17:18
  • Android内容提供者ContentProvider用法实例分析

    2021-06-25 09:33:04
  • Java图形用户界面设计(Swing)的介绍

    2022-08-23 03:29:37
  • Java应用开源框架实现简易web搜索引擎

    2023-08-22 20:20:54
  • IDEA不编译除了.java之外的文件的解决办法(推荐)

    2023-09-16 15:50:44
  • SpringBoot浅析Redis访问操作使用

    2022-09-26 02:09:18
  • Android操作Excel文件的功能实现

    2022-08-29 17:22:55
  • 详解Java编程中包package的内容与包对象的规范

    2022-03-06 17:48:08
  • java实现切割wav音频文件的方法详解【附外部jar包下载】

    2021-07-08 22:29:56
  • Android编程实现启动界面的方法分析

    2022-02-18 14:25:27
  • Java 栈与队列实战真题训练

    2021-06-11 01:46:08
  • asp之家 软件编程 m.aspxhome.com