手搭手入门Mybatis-Plus配置多数据源

news2024/11/16 23:42:44

https://baomidou.com/

Mybatis-Plus介绍

为简化开发而生

MyBatis-Plus(opens new window)(简称 MP)是一个 MyBatis (opens new window) 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。

特性

  • 无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑
  • 损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作
  • 强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求
  • 支持 Lambda 形式调用:通过 Lambda 表达式,方便的编写各类查询条件,无需再担心字段写错
  • 支持主键自动生成:支持多达 4 种主键策略(内含分布式唯一 ID 生成器 - Sequence),可自由配置,完美解决主键问题
  • 支持 ActiveRecord 模式:支持 ActiveRecord 形式调用,实体类只需继承 Model 类即可进行强大的 CRUD 操作
  • 支持自定义全局通用操作:支持全局通用方法注入( Write once, use anywhere )
  • 内置代码生成器:采用代码或者 Maven 插件可快速生成 Mapper 、 Model 、 Service 、 Controller 层代码,支持模板引擎,更有超多自定义配置等您来使用
  • 内置分页插件:基于 MyBatis 物理分页,开发者无需关心具体操作,配置好插件之后,写分页等同于普通 List 查询
  • 分页插件支持多种数据库:支持 MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、Postgre、SQLServer 等多种数据库
  • 内置性能分析插件:可输出 SQL 语句以及其执行时间,建议开发测试时启用该功能,能快速揪出慢查询
  • 内置全局拦截插件:提供全表 delete 、 update 操作智能分析阻断,也可自定义拦截规则,预防误操作

手搭手入门Mybatis-Plus配置多数据源

添加依赖

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

配置模板

spring:

  datasource:
    dynamic:
      primary: master #设置默认的数据源或者数据源组,默认值即为master
      strict: false #严格匹配数据源,默认false. true未匹配到指定数据源时抛异常,false使用默认数据源
      datasource:
        master:
          url: jdbc:mysql://xx.xx.xx.xx:3306/dynamic
          username: root
          password: 123456
          driver-class-name: com.mysql.jdbc.Driver # 3.2.0开始支持SPI可省略此配置
        slave_1:
          url: jdbc:mysql://xx.xx.xx.xx:3307/dynamic
          username: root
          password: 123456
          driver-class-name: com.mysql.jdbc.Driver
        slave_2:
          url: ENC(xxxxx) # 内置加密,使用请查看详细文档
          username: ENC(xxxxx)
          password: ENC(xxxxx)
          driver-class-name: com.mysql.jdbc.Driver
        #......省略
        #以上会配置一个默认库master,一个组slave下有两个子库slave_1,slave_2

案例

                   

spring:
  datasource:
    dynamic:
      primary: sys #设置默认的数据源或者数据源组,默认值即为master
      strict: false #严格匹配数据源,默认false. true未匹配到指定数据源时抛异常,false使用默认数据源
      datasource:
        sys:
          username: root
          password: pwd
          url: jdbc:mysql://192.168.3.1:3306/sys?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF-8
          driver-class-name: com.mysql.jdbc.Driver
        wms:
          url: jdbc:mysql://192.168.3.2:3306/Wms?useUnicode=true&characterEncoding=UTF-8
          username: root
          password: pwd
          driver-class-name: com.mysql.jdbc.Driver

impl实现类指定数据源

@Test
void multipleDataSources(){

    List<User>  users =userService.list();
    List<TOutboundlog> tOutBoundLogs = tOutboundlogService.list();
    System.out.println(users);
    System.out.println(tOutBoundLogs);

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1018836.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python 多线程概述

视频版教程 Python3零基础7天入门实战视频教程 几乎所有的操作系统都支持同时运行多个任务&#xff0c;一个任务通常就是一个程序&#xff0c;每一个运行中的程序就是一个进程。当一个程序运行时&#xff0c;内部可能包含多个顺序执行流&#xff0c;每一个顺序执行流就是一个线…

指针笔试题

目录 指针笔试题 NO1. NO2. NO3. NO4. NO5.✔ NO6. NO7. NO8.✔ 今天接着继续指针练习。&#x1f642;&#x1f642;&#x1f642; 指针笔试题 NO1. //指针的类型 //转化后的类型 //解引用访问根据指针类型访问几个字节 //整型在内存中的存储------小端存储 //*解引…

项目上线部署--》服务器部署流程(二)安装Nginx、Node.js、MySQL

阅读本篇文章前请先阅读项目上线部署--》服务器部署流程&#xff08;一&#xff09; 目录 &#x1f31f;安装Nginx 先登录远程服务器&#xff0c;安装依赖包 下载并解压包 &#x1f31f;安装Node.js 安装nodejs进程管理工具 &#x1f31f;安装MySQL &#x1f31f;写在最…

透过《眼睛的故事》:需求为何成为纪录片的“价值锚点”?

我们正处在一个内容过载、追求流量的时代。 对于观众来说&#xff0c;这是幸运的&#xff0c;也是不幸的。一方面&#xff0c;相比以前能接受到的内容指数级增长&#xff0c;自己的视野无限扩大&#xff0c;但另一方面&#xff0c;“流量思维”下粗制滥制的内容不在少数&#…

一百七十八、ClickHouse——海豚调度执行ClickHouse的.sql文件

一、目的 由于数仓的ADS层是在ClickHouse中&#xff0c;即把Hive中DWS层的结果数据同步到ClickHouse中&#xff0c;因此需要在ClickHouse中建表&#xff0c;于是需要海豚调度执行ClickHouse的.sql文件 二、实施步骤 &#xff08;一&#xff09;第一步&#xff0c;海豚建立Cl…

JavaWeb的基本概念

一、Web基本概念 Web的基本结构&#xff1a; 1.客户端的概述 1.1. 客户端的作用 与用户进行交互&#xff0c;用于接收用户的输入(操作)、展示服务器端的数据以及向服务器传递数据 1.2. 常见的客户端 PC端网页&#xff1a; 移动端&#xff1a; Iot设备&#xff1a; 2…

基于LUT查找表方法的图像gamma校正算法FPGA实现,包括tb测试文件和MATLAB辅助验证

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 将gamma2.2和gamma1/2.2的数据分别导入到matlab进行对比&#xff1a; 2.算法运行软件版本 matlab2022a 3.部分核心程序 timescale 1ns / 1ps //…

MyBatisPlus中使用Mybatis方式操作数据库。

说明 MyBatisPlus中&#xff0c;可以使用 Mybatis 方式操作数据库。在 Mapper.xml 中&#xff0c;编写 SQL 来实现比较复杂的操作。 一般比较复杂的逻辑&#xff0c;需要多表联合查询&#xff0c;比较适合直接写SQL。 MybatisPlus比较适合单表操作。 PS&#xff1a;本示例只…

使用stelnet进行安全的远程管理

1. telnet有哪些不足&#xff1f; 2.ssh如何保证数据传输安全&#xff1f; 需求&#xff1a;远程telnet管理设备 用户定义需要在AAA模式下&#xff1a; 开启远程登录的服务&#xff1a;定义vty接口 然后从R2登录&#xff1a;是可以登录的 同理R3登录&#xff1a; 在R1也可以查…

10.前端打包与nginx部署

文章目录 打包部署nginx替换html 打包 首先&#xff0c;确保你的项目是可以运行的&#xff0c;以若依为例&#xff0c;运行npm run dev 是可以正常运行起来前端的。然后前端的打包命令是 # 构建测试环境 npm run build:stage # 构建生产环境 npm run build:prod打包好之后&am…

华为云香港S3云服务器性能测评_99元一年租用价格

华为云香港S3云服务器1核2G1M带宽99元一年性能测评&#xff0c;配置为S3云服务器1核2G1M带宽&#xff0c;S系列热卖机型&#xff0c;适用于个人建站、普通web应用等负载较低场景&#xff0c;系统盘为高IO40G系统盘&#xff0c;华为云百科分享华为云香港云服务器配置费用&#x…

HUAWEI华为MateBookD15笔记本2019款i5独显非触屏(BoB-WAH9P)原装出厂Win10系统2004

原厂系统自带显卡、网卡、声卡、指纹等所有驱动、出厂主题壁纸、系统属性专属LOGO标志、Office办公软件、华为电脑管家等预装程序 链接&#xff1a;https://pan.baidu.com/s/1sB7dCXlvw9deSiVeY8BvDg?pwd49a6 提取码&#xff1a;49a6

笔记01:第一行Python

NameError 名字不含特殊符号&#xff08;只能是英文、数字、下划线、中文等&#xff09;名字区分大小写名字先定义后使用 SyntaxError 不符合Python语法书写规范除了语法成分中的保留拼写错误输出中文符号if、for、def等语句末尾忘记冒号 IdentationError 缩进错误&#x…

算法刷题 week4

目录 1.斐波那契数列题目题解(递推 滚动变量) O(n) 剑指offer 10 - II 青蛙跳台阶问题题目题解 10.旋转数组的最小数字题目题解(二分) O(n) 1.斐波那契数列 题目 题解 (递推 滚动变量) O(n) 这题的数据范围很小&#xff0c;我们直接模拟即可。 当数据范围很大时&#xff0…

【学习笔记】Java 一对一培训(2.1)Java基础语法

【学习笔记】Java 一对一培训&#xff08;2.1&#xff09;Java基础语法 关键词&#xff1a;Java、Spring Boot、Idea、数据库、一对一、培训、教学本文主要内容含Java简介、Java基础语法、Java对象和类、Java基本数据类型、Java变量类型、Java修饰符计划2小时完成&#xff0c;…

广义模态控制实例

广义模态控制实例 1. 原系统2. 调节器设计3. 加入调节器后的系统 在广义模态控制一文中&#xff0c;笔者介绍了广义模态控制的思路以及算法。本文将举一个简单的广义模态控制的例子&#xff0c;以加深理解。 1. 原系统 取原开环系统的传递函数为 G ( s ) 2 15 s 2 s G ( {…

2、ARM处理器概论

一、ARM处理器概述 1、ARM的含义 ARM&#xff08;Advanced RISC Machines&#xff09;有三种含义&#xff0c;一个公司的名称、一类处理器的通称、一种技术 ARM公司&#xff1a; 成立于1990年11月&#xff0c;前身为Acorn计算机公司主要设计ARM系列RISC处理器内核授权ARM内…

数据包络分析(DEA)

写在前面&#xff1a; 博主本人大学期间参加数学建模竞赛十多余次&#xff0c;获奖等级均在二等奖以上。为了让更多学生在数学建模这条路上少走弯路&#xff0c;故将数学建模常用数学模型算法汇聚于此专栏&#xff0c;希望能够对要参加数学建模比赛的同学们有所帮助。 目录 1. …

gma 2 教程(二)数据操作:8.矢量数据功能逻辑架构和格式支持

安装 gma&#xff1a;pip install gma 功能逻辑架构 gma矢量数据操作类主要包括数据资源&#xff08;DataSource&#xff09;、矢量图层&#xff08;Layer&#xff09;、矢量要素&#xff08;Feature&#xff09;&#xff0c;三者的示意图如下&#xff1a; 图 29 矢量数据组成…

【JAVA-Day22】深度解析 Java 的包机制

深度解析 Java 的包机制 深度解析 Java 的包机制摘要引言一、什么是包机制1.1 包的定义1.2 包的命名规范1.3 包的声明1.4 包的导入1.5 包的访问权限1.6 包的层次结构1.7 包的目录结构 二、包的命名冲突问题三、总结参考资料 博主 默语带您 Go to New World. ✍ 个人主页—— 默…