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 多数据源内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Mybatis plus 配置多数据源的实现示例

    记得面试时候,有面试官会问道,你们多数据源是怎么实现的呀........,一阵蒙蔽中,然后说道我们之前项目中,没有用到多数据源. 所幸,目前做得项目中有一个业务逻辑中,用到多个数据库数据情况,多数据源华丽上线. 一. mybatis plus 因为我们项目是springboot+mybatis plus,有些人一看,mybatis还知道对吧,mybatis plus是什么鬼,其实字面意思可以理解,就是对mybatis进行一些功能改造,一些封装升级,然后用起来特别方便. 核心功能的升级主要是以下三

  • SpringMVC Mybatis配置多个数据源并切换代码详解

    这篇文章主要介绍了SpringMVC Mybatis配置多个数据源并切换代码详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 最近公司一个项目需要连接两个数据库(A和B)操作,有的模块查询A库,有的模块查询B库,因此需要改造下,项目后台用的是SpringMVC+Mybatis+MySQL架构,折腾了两天后终于搞定了,在这里记录过改造过程. 使用场景 多数据源的使用的场景一般有: 主从数据库切换 读写分离 兼容旧库 实现原理 Spring2.x

  • SpringBoot+MyBatis+AOP实现读写分离的示例代码

    目录 一. MySQL 读写分离 1.1.如何实现 MySQL 的读写分离? 1.2.MySQL 主从复制原理? 1.3.MySQL 主从同步延时问题(精华) 二.SpringBoot+AOP+MyBatis实现MySQL读写分离 2.1.AbstractRoutingDataSource 2.2.如何切换数据源 2.3.如何选择数据源 三 .代码实现 3.0.工程目录结构 3.1.引入Maven依赖 3.2.编写配置文件,配置主从数据源 3.3.Enum类,定义主库从库 3.4.ThreadL

  • springboot整合Mybatis、JPA、Redis的示例代码

    引言 在springboot 项目中,我们是用ORM 框架来操作数据库变的非常方便.下面我们分别整合mysql ,spring data jpa 以及redis .让我们感受下快车道. 我们首先创建一个springboot 项目,创建好之后,我们来一步步的实践. 使用mybatis 引入依赖: <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-

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

    多数据源的目的在于一个代码模块可调用多个数据库的数据进行某些业务操作. MyBatis-Plus开发者写了一个多数据源叫dynamic-datasource-spring-boot-starter,非常简单易用. dynamic-datasource-spring-boot-starter文档 官方文档部分截图: 第三方集成的,基本上是目前比较主流的(用的比较多). 一.添加Maven依赖 <dependency> <groupId>com.baomidou</groupId

  • SpringBoot mybatis 实现多级树形菜单的示例代码

    一.前言 iview-admin中提供了 v-org-tree这么一个vue组件可以实现树形菜单,下面小编来提供一下在element-ui中的使用教程(项目见:https://github.com/lison16/v-org-tree) 小编集成了el-dropdown下拉菜单(鼠标左击显示菜单),和右击自定义菜单,两种方式,效果图如下: 二.使用教程 (1)安装依赖 npm install clipboard npm install v-click-outside-x npm install

  • Mybatis Plus 实现批量插入的示例代码

    目录 一. 添加依赖 二. 继承默认方法注入 三. 在 MybatisPlusConfig 配置文件中注入 Bean 四. 扩展自带 BaseMapper 五. 业务层面实现 Mybatis Plus 的 IService 接口中提供了批量插入的方法,然而,它的内部实现逻辑竟然是这样的: 居然是循环单条插入?!逗人玩嘛,好吧,自己动手,丰衣足食. 一. 添加依赖 <!--mybatis plus extension,包含了mybatis plus core--> <dependency&

  • 基于mybatis plus实现数据源动态添加、删除、切换,自定义数据源的示例代码

    目录 简介 代码示例 mavne依赖 数据源增加.移除 数据源切换 基于AOP切换 基于重写处理器 自定义数据源 简介 基于springboot,mybatis plus集成了一套多数据源的解决方案,在使用时引入相应的插件dynamic-datasource-spring-boot-starter,可以实现数据源的动态添加.删除等功能,对于多租户或者分库等操作可以根据AOP切面代理到不同的数据源.实现单一系统数据隔离的目的. 代码示例 mavne依赖 <!--mybatis-plus--> &

  • SpringBoot整合JDBC、Druid数据源的示例代码

    1.SpringBoot整合JDBCTemplate 1.1.导入jdbc相关依赖包 主要的依赖包: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency> <groupId>mysql</gro

  • 使用Spring Boot+MyBatis框架做查询操作的示例代码

    一.在你建立的工程下创建 Module 选择Spring initializr创建. 二.在Type处选择: Maven Project(项目的构建工具) 三.创建依赖时勾上web,mybatis,mysql(这个看你个人需要吧,可以自主选择) 建立好的项目结构如下: 注意:application.properties和application.yml是同一个东西,均为项目的核心配置文件 内容如下: #连接数据库 spring.datasource.url=jdbc:mysql://localho

  • EasyUI的DataGrid绑定Json数据源的示例代码

    EasyUI给表格绑定数据是最常用的方法,小编分享一下总结出来的两种绑定表格方法,知识在于积累. 第一种:数据存放在数据集中,每一行对应多个值,利用循环把数据绑定到表格 前台代码: <table id="dg" class="easyui-datagrid" style="width:100%;height:100%;" title="需要设置表格标题" data-options=" rownumbers:tr

随机推荐