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

 更新时间:2020年11月15日 10:58:00   作者:youcongtech  
这篇文章主要介绍了MyBatis-Plus实现多数据源的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

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

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)

到此这篇关于MyBatis-Plus实现多数据源的示例代码的文章就介绍到这了,更多相关MyBatis-Plus 多数据源内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详解Java的Struts框架以及相关的MVC设计理念

    详解Java的Struts框架以及相关的MVC设计理念

    这篇文章主要介绍了详解Java的Struts框架以及相关的MVC设计理念,Struts是Java的SSH三大web开发框架之一,需要的朋友可以参考下
    2015-12-12
  • Java开发中POJO和JSON互转时如何忽略隐藏字段的问题

    Java开发中POJO和JSON互转时如何忽略隐藏字段的问题

    这篇文章主要介绍了Java开发中POJO和JSON互转时如何忽略隐藏字段的问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-02-02
  • 解决使用redisTemplate高并发下连接池满的问题

    解决使用redisTemplate高并发下连接池满的问题

    这篇文章主要介绍了解决使用redisTemplate高并发下连接池满的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • springboot打成jar后获取classpath下文件失败的解决方案

    springboot打成jar后获取classpath下文件失败的解决方案

    这篇文章主要介绍了使用springboot打成jar后获取classpath下文件失败的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • Spring定时任务轮询本地数据库实现过程解析

    Spring定时任务轮询本地数据库实现过程解析

    这篇文章主要介绍了Spring定时任务轮询本地数据库实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01
  • Java返回文件时为图片或pdf等设置在线预览或下载功能

    Java返回文件时为图片或pdf等设置在线预览或下载功能

    这篇文章主要介绍了Java返回文件时为图片或pdf等设置在线预览或下载功能,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2024-01-01
  • Java String初始化String域例题解析

    Java String初始化String域例题解析

    这篇文章主要介绍了Java String初始化String域例题解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • SpringCloud gateway跨域配置的操作

    SpringCloud gateway跨域配置的操作

    这篇文章主要介绍了SpringCloud gateway跨域配置的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • Springboot如何实现Web系统License授权认证

    Springboot如何实现Web系统License授权认证

    这篇文章主要介绍了Springboot如何实现Web系统License授权认证,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • Java设置String字符串编码方法详解

    Java设置String字符串编码方法详解

    因为String字符串很常用,所以我们在使用它的过程中,可能会面临各种问题,比如”中文乱码“问题等,那么为什么中文会乱码?本文将给大家介绍一下Java如何设置String字符串编码,来避免和解决这一常见问题,需要的朋友可以参考下
    2023-05-05

最新评论