dynamic datasource

导入依赖

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

编写配置文件

spring:
datasource:
dynamic:
primary: ds1 # 设置默认的数据源或者数据源组,默认值即为master,如果你主从默认下主库的名称就是master可不定义此项。
strict: fasle # 严格匹配数据源,默认fasle,true未匹配到指定数据源的时候抛异常
datasource:
ds1:
username: root
password: 123456
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://47.xxx.xx.xxx:3306/dynamic?characterEncoding=utf8&useSSL=false
ds2:
username: root
password: 123456
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://47.xxx.xx.xxx:3307/dynamic?characterEncoding=utf8&useSSL=false
#......省略
#以上会配置一个默认库ds1,一个组slave下有两个子库ds1,ds2

如何使用

在service层方法上加上 @DS("xxx")注解即可指定数据库

@DS("ds1")
public User getByUserId1(String userId){
return userDao.getById(Integer.parseInt(userId));
}
@DS("ds2")
public User getByUserId2(String userId){
return userDao.getById(Integer.parseInt(userId));
}
@DS("ds1")
public void insertUserDs1((String name,String age)){
userDao.insertUserDs1(name,age);
}
@DS("ds2")
public void insertUserDs2((String name,String age)){
userDao.insertUserDs2(name,age);
}

如何实现多数据源事务

在方法上加上@DSTransactional注解即可

@DSTransactional
public void insertUserAll(String name,String age){
UserService userService = (UserService) AopContext.currentProxy();
userService.insertUserDs1(name,age);
userService.insertUserDs2(name,age);
}

如果该方法抛出异常则会回滚

springboot实现连接多个数据源的更多相关文章

  1. Springboot配置连接两个数据库

    背景: 项目中需要从两个不同的数据库查询数据,之前实现方法是:springboot配置连接一个数据源,另一个使用jdbc代码连接. 为了改进,现在使用SpringBoot配置连接两个数据源 实现效果: ...

  2. springboot入门系列(四):SpringBoot和Mybatis配置多数据源连接多个数据库

    SpringBoot和Mybatis配置多数据源连接多个数据库 目前业界操作数据库的框架一般是 Mybatis,但在很多业务场景下,我们需要在一个工程里配置多个数据源来实现业务逻辑.在SpringBo ...

  3. SpringBoot文档翻译系列——29.SQL数据源

    原创作品,可以转载,但是请标注出处地址: 因为需要使用到这方面内容,所有对这一部分进行了翻译. 29  使用SQL数据源 SpringBoot为SQL数据源提供了广泛支持,从直接使用JdbcTempl ...

  4. spring boot 连接多个数据源

    在springboot中有需要连接多个数据源的情况. 首先配置文件application.properties中添加两个数据源连接字符串 mybatis.type-aliases-package=co ...

  5. SpringBoot整合MyBatisPlus配置动态数据源

    目录 SpringBoot整合MyBatisPlus配置动态数据源 SpringBoot整合MyBatisPlus配置动态数据源 推文:2018开源中国最受欢迎的中国软件MyBatis-Plus My ...

  6. Springboot+mybatis+druid 配置多数据源

    项目结构 application.yml配置文件 spring: application: name: service datasource: primary: jdbc-url: jdbc:orac ...

  7. springboot和mybatis 配置多数据源

    主数据源(由于代码没有办法复制的原因,下面图片和文字不一致) package com.zhianchen.mysqlremark.toword.config;import com.zaxxer.hik ...

  8. springBoot专题3---->springBoot与多数据源的配置

    最近有点忙,更新有点慢.今天进来说说一说springBoot中如何配置多数据源. 第一,新建一个名为springBoot-mutidata的maven项目,完整的pom.xml配置如下: <?x ...

  9. Springboot spring data jpa 多数据源的配置01

    Springboot spring data jpa 多数据源的配置 (说明:这只是引入了多个数据源,他们各自管理各自的事务,并没有实现统一的事务控制) 例: user数据库   global 数据库 ...

  10. Spring学习11-Spring使用proxool连接池 管理数据源

    Spring 一.Proxool连接池简介及其配置属性概述   Proxool是一种Java数据库连接池技术.是sourceforge下的一个开源项目,这个项目提供一个健壮.易用的连接池,最为关键的是 ...

随机推荐

  1. HTTP/1.1 优化

    避免发送 HTTP 请求 对于一些具有重复性的 HTTP 请求,比如每次请求得到的数据都一样的,我们可以把这对「请求-响应」的数据都缓存在本地,通过缓存技术减少请求次数. 客户端会把第一次请求以及响应 ...

  2. mysql-installer-community-8.0.19.0.msi 的自定义安装与卸载

    一.双击运行安装包执行安装 1.选择Custom,该种方式可以设置安装位置,仅安装所需的组件,点击Next 2.选择需要的组件,点击Advanced Options 3.设置安装位置,点击OK 4.点 ...

  3. Python 加上颜色进行输出

    博客地址:https://www.cnblogs.com/zylyehuo/ print(f"\033[42m文本内容\033[0m")

  4. 【Linux】5.11 shell文件包含

    Shell 文件包含 ?和其他语言一样,Shell 也可以包含外部脚本.这样可以很方便的封装一些公用的代码作为一个独立的文件. Shell 文件包含的语法格式如下: . filename # 注意点号 ...

  5. docker container 启动异常

    场景重现 阿里云ECS下新安装的CoreOS 1465.8.0 64-bit,没做过其他任何操作,直接执行以下命令出现异常: docker pull hello-world docker run -i ...

  6. 2021年扩展DevOps的6种方法

    2021年扩展DevOps的6种方法 加强devops流程的自动化 为了满足快速.高质量应用程序交付的需求,现代软件团队需要一种超越常规性能测试的方法.在这里,以devops为中心的方法可以提供更快. ...

  7. 【深度学习】从VAE到GAN漫谈

    正文 从AE说起 AE是一个特征提取模型,通过编解码的形式重构输入,完成低维特征表示工作 推导 存在一个输入\(x\),构造AE编码器\(p_\theta(x)\),得到离散低维特征\(z\): 通过 ...

  8. 端口telnet不通排查过程

    现状 简单描述下最近在做啥,我手里维护的一些系统的线上服务器,还在使用centos7,7.3/7.6/7.9都有,运维侧选定的替换系统是openEuler20.03-LTS-SP1.按理说,运维直接在 ...

  9. 神级辅助工具,解决GPT-SoVITS配音发音纠正和逐句优化

    即使地表最强AI配音也无法自动识别360应配音成三百六十还是三六零,在长文配音中很难一次满意,总会因为个别几句配音不理想而毁掉整个配音成果. 在GPT-SoVITS配音中,自动把长文章拆分成段落或长句 ...

  10. RocketMQ学习与总结

    一.基本介绍 1.应用场景 消息队列是一种先进先出的数据结构,常见的应用场景: 应用解耦:系统的耦合性越高,容错性就越低 实例:用户创建订单后,耦合调用库存系统.物流系统.支付系统,任何一个子系统出了 ...