你的位置:首页 > Java教程

[Java教程]springboot+mybatis实现动态切换数据源

springboot中mybatis多数据源动态切换实现_相逢一笑-CSDN博客

这里给出一个动态数据源的配置方案,两个DB均以mysql为例外围足球。 多数据源配置引入 mybatis和mysql在springboot中的引入这里就不在说了,不了解的可以参见spr...

SpringBoot+AOP+Mybatis实现多数据源切换,实现数据库读...-CSDN博客

自定义多数据源动态切换(SpringBoot+Mybatis)实现数据库读写分离1,自定义多数据源动态切换原理总结一下: 通过自定义动态数据DynamicDataSource重写的determineCurrent...

SpringBoot + Mybatis使用AOP和注解实现动态切换数据源配置 - 知乎

(目前我所了解到的),分包和AOP,而在上一篇文章Springboot +Mybatis实现多数据源配置中,我们实现了静态多数据源的配置,但是这种怎么说呢,在实际的使用...

springboot+mybatis实现动态切换数据源 - 撸码识途 - 博客园

springboot+mybatis实现动态切换数据源 前几天有个需求,需要使用不同的数据源,例如某业务要用A数据源,另一个业务要用B数据源百家乐网。我上网收集了一些资料整...

springboot+mybatis实现动态切换数据源 - Ruthless - 博客园

springboot+mybatis实现动态切换数据源 目前有个需求,需要使用不同的数据源,例如某业务要用A数据源,另一个业务要用B数据源现金网开户。 如何在spring框架中解决...

SpringBoot+Mybatis-多数据源动态切换+动态加载 - 简书

基于Spring Boot实现Mybatis的多数据源切换和动态数据源加载 所以我的项目主要需要解决的是多数据源动态加载,当然有了动态加载,动态切换就很简单了; ...

spring boot + mybatis实现动态切换数据源实例代码_java_脚本之家

这篇文章主要给大家介绍了关于spring boot + mybatis实现动态切换数据源的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的...

SpringBoot+Mybatis实现数据源动态切换-Java代码类资源-CSDN下载

springboot实现数据源动态切换注意事项: 1. 该demo采用yml配置数据库信息,注意url标签为jdbc-url 2.项目中加了日志输出,可看到完整执行过程 3.在Servi...

Springboot 整合Mybatis多数据源并动态切换 - 云+社区 - 腾讯云

开始使用Springboot 整合mybatis,首先引入pom文件足球网址导航。 lt;?xml version=quot;1.0quot; encoding...动态数据源配置 这里使用的数据源为druid,实现数据源之间的切换...

java-springboot+mybatis切换数据源问题——CSDN问答频道

# 问题描述 springboot+mybatis想实现oracle和Mysql数据库切换,目前用 Mysql作为 主数据源时, 可以正常查询;用Oracle作为主数据源时,也可以正常查询;...

springboot+mybatis多数据源配置,AOP注解动态切换数据源

springboot+mybatis多数据源配置,AOP注解动态切换数据源 转引鸩怼孑...应用场景:项目使用多数据源,并实现读写分离hg0088如何注册。 springboot默认加载application...

SpringBoot+Mybatis多数据源配置并自主切换_智扬信达_新浪博客

在本文中,会介绍SpringBoot + Mybatis框架下如何配置多个数据源,并能代码中...动态切换数据源类,该类需要继承AbstractRoutingDataSource类,并重写dete...

Spring Boot + Mybatis 实现动态数据源

源的情况,比如多租户的场景,系统登录时需要根据用户信息切换到用户对应的数据库...实现案例本教程案例基于 Spring Boot + Mybatis + MySQL 实现排球比分。...

求助帖:spring、mybatis实现动态维护数据源(动态增加或动态删除)

15条回复nbsp;-nbsp;发帖时间:nbsp;2016年7月9日最终效果希望能够实现成为系统配置中维护中心库的数据...,并可以实现这些数据源的动态新增、删除、动态切换加拿大28开奖。...Spring Boot + Mybatis 实现动态数据源2018-11-01...

求助帖,SpringBoot mybatis 中实现动态修改数据源的配置信息_百度...

1个回答 - 回答时间: 2017年10月10日

配置多个数据源信息,比如dataSource1,dataSource2,dataSource3等等水果机娱乐71966澳门永利平台。自定义一个动态数据源类,同时注入以上这些数据源以及相应的标志,一般用Map区分利用动态...更多关于springboot+mybatis实现动态切换数据源的问题gt;gt;

SpringBoot+Mybatis 实现动态数据源切换方案_云博客_云社区-华为云

最近让我做一个大数据的系统,分析了一下,麻烦的地方就是多数据源切换抽取数据球探比分直播。考虑到可以跨器跨数据库抽数,再整理数据,就配置了这个动态数据源的...

SpringBoot/Mybatis 动态多数据源分享

本场Chat 将使用 Spring Boot、Mybatis 搭建一个简易的 Java ,是一个不需要修改配置文件、不重启、动态切换数据源的项目,适合需要需要多数据...

...使用springboot + JPA / MyBatis 实现多数据源动态切换,从而...

spring boot + mybatis实现动态切换数据源实例代码_Java_软件编程...

这篇文章主要给大家介绍了关于spring boot + mybatis实现动态切换数据源的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的...印度金三角游包团印度金三角游包团10月印度金三角的旅游路线10月印度金三角的旅游路线组团去印度金三角旅游组团去印度金三角旅游北京出发去圣马力诺旅游 北京出发去圣马力诺旅游 北京出发去圣马力诺旅游 北京出发去圣马力诺旅游 北京出发去圣马力诺旅游 北京出发去圣马力诺旅游 北京出发去圣托马斯岛旅游 北京出发去圣托马斯岛旅游 北京出发去圣托马斯岛旅游 北京出发去圣托马斯岛旅游 北京出发去圣托马斯岛旅游 北京出发去圣托马斯岛旅游 北京出发去圣文森特和格林纳丁斯旅游 北京出发去圣文森特和格林纳丁斯旅游 北京出发去圣文森特和格林纳丁斯旅游 北京出发去圣文森特和格林纳丁斯旅游 北京出发去圣文森特和格林纳丁斯旅游 北京出发去圣文森特和格林纳丁斯旅游 北京出发去斯里兰卡旅游 北京出发去斯里兰卡旅游 北京出发去斯里兰卡旅游 北京出发去斯里兰卡旅游 北京出发去斯里兰卡旅游 北京出发去斯里兰卡旅游

前几天有个需求,需要使用不同的数据源,例如某业务要用A数据源,另一个业务要用B数据源最好比分网。我上网收集了一些资料整合了一下,虽然最后这个需求不了了之了,但是多数据源动态切换还是蛮好用的,所以记录一下,或许以后有用呢?或者自己感兴趣又想玩呢!

1.加个依赖

  <dependency>   <groupId>org.mybatis.spring.boot</groupId>   <artifactId>mybatis-spring-boot-starter</artifactId>
       <version>1.3.1</version> </dependency>

2.application.properties配置文件

#主从数据库master.db.driverClassName .mysql.jdbc.Drivermaster.db.url=jdbc:mysql://localhost:3306/cbd?characterEncoding=UTF-8&useUnicode=true&useSSL=falsemaster.db.username=rootmaster.db.password=adminslave.db.driverClassName .mysql.jdbc.Driverslave.db.url=jdbc:mysql://localhost:3306/cbd_test?characterEncoding=UTF-8&useUnicode=true&useSSL=falseslave.db.username=rootslave.db.password=adminmybatis.config-location= classpath:config/mybatis-config.-locations=classpath:mapper/**/*.

 

3.禁用springboot默认加载数据源配置

@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})public class Application {  public static void main(String[] args) throws Exception {  SpringApplication.run(Application.class, args); }}

4.数据源配置类

/** * 主数据源 */@Configuration@ConfigurationProperties(prefix = "master.db")public class MasterDataSourceConfig { private String url; private String username; private String password; private String driverClassName;}
/** * 从数据源配置 */@Configuration@ConfigurationProperties(prefix = "slave.db")public class SlaveDataSourceConfig { private String url; private String username; private String password; private String driverClassName;}
/** * 数据源配置类 */@Configurationpublic class DataSourc ponent { @Resource private MasterDataSourceConfig masterDataSourceConfig; @Resource private SlaveDataSourceConfig slaveDataSourceConfig;  @Bean(name = "master") public DataSource masterDataSource() {  DataSource dataSource = new DataSource();  dataSource.setUrl(masterDataSourceConfig.getUrl());  dataSource.setUsername(masterDataSourceConfig.getUsername());  dataSource.setPassword(masterDataSourceConfig.getPassword());  dataSource.setDriverClassName(masterDataSourceConfig.getDriverClassName());  return dataSource; } @Bean(name = "slave") public DataSource slaveDataSource() {  DataSource dataSource = new DataSource();  dataSource.setUrl(slaveDataSourceConfig.getUrl());  dataSource.setUsername(slaveDataSourceConfig.getUsername());  dataSource.setPassword(slaveDataSourceConfig.getPassword());  dataSource.setDriverClassName(slaveDataSourceConfig.getDriverClassName());  return dataSource; } @Primary//不加这个会报错皇冠体育。 @Bean(name = "multiDataSource") public MultiRouteDataSource exampleRouteDataSource() {  MultiRouteDataSource multiDataSource = new MultiRouteDataSource();  Map<Object, Object> targetDataSources = new HashMap<>();  targetDataSources.put("master", masterDataSource());  targetDataSources.put("slave", slaveDataSource());  multiDataSource.setTargetDataSources(targetDataSources);  multiDataSource.setDefaultTargetDataSource(masterDataSource());  return multiDataSource; }}

5.数据源上下文

/** * 数据源上下文 */public class DataSourceContext { private static final ThreadLocal<String> contextHolder = new ThreadLocal<>(); public static void setDataSource(String value) {  contextHolder.set(value); } public static String getDataSource() {  return contextHolder.get(); } public static void clearDataSource() {  contextHolder.remove(); }}

6.DataSource路由类

/** 重写的函数决定了最后选择的DataSource*/public class MultiRouteDataSource extends AbstractRoutingDataSource { @Override protected Object determineCurrentLookupKey() {  //通过绑定线程的数据源上下文实现多数据源的动态切换,有兴趣的可以去查阅资料或源码  return DataSourceContext.getDataSource(); }}

 

7.使用,修改上下文中的数据源就可以切换自己想要使用的数据源了欧洲杯点球。

 public UserVO findUser(String username) {  DataSourceContext.setDataSource("slave");  UserVO userVO = userMapper.findByVO(username);  System.out.println(userVO.getName()+"=====================");  return null; }

这种是在业务中使用代码设置数据源的方式,也可以使用AOP+注解的方式实现控制,方法多多!