1、配置文件

spring.datasource.url=jdbc:mysql://198.168.1.1:3306/user?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&rewriteBatchedStatements=true&tinyInt1isBit=false
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource1.url=jdbc:mysql://198.168.1.2:3306/user?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&rewriteBatchedStatements=true
spring.datasource1.username=root
spring.datasource1.password=123456
spring.datasource1.driver-class-name=com.mysql.jdbc.Driver

2、配置数据源

import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary; import javax.sql.DataSource; /**
* 数据源配置
*/
@Configuration
public class DataSourceConfig { @Bean(name = "primaryDataSource")
@Qualifier("primaryDataSource")
@ConfigurationProperties(prefix = "spring.datasource")
@Primary
public DataSource primaryDataSource() {
return DataSourceBuilder.create().build();
} @Bean(name = "secondDataSource")
@Qualifier("secondDataSource")
@ConfigurationProperties(prefix = "spring.datasource1")
public DataSource secondDataSource() {
return DataSourceBuilder.create().build();
}
}
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.jdbc.core.JdbcTemplate; import javax.sql.DataSource; /**
* 数据源配置
*/
@Configuration
public class JdbcTemplateTConfig { @Bean(name = "primaryJdbcTemplate")
@Primary
public JdbcTemplate primaryJdbcTemplate(
@Qualifier("primaryDataSource") DataSource dataSource) {
return new JdbcTemplate(dataSource);
} @Bean(name = "secondJdbcTemplate")
public JdbcTemplate secondaryJdbcTemplate(
@Qualifier("secondDataSource") DataSource dataSource) {
return new JdbcTemplate(dataSource);
}
}

3、使用示例

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map; /**
* 多数据源数据同步
*/
@RestController
@RequestMapping("/vic/bench/jdbcs")
public class JdbcTController { public static final Logger logger = LoggerFactory.getLogger(JdbcTController.class); @Autowired
@Qualifier("primaryJdbcTemplate")
private JdbcTemplate jdbcTemplate1; @Autowired
@Qualifier("secondJdbcTemplate")
private JdbcTemplate jdbcTemplate2; /**
* 数据同步
*/
@RequestMapping(value = "/dataSync.do", method = RequestMethod.POST)
public Map<String, Object> dataSync() {
// 源一
String sql = "SELECT id, ID_HL, USER_ID, USER_NAME FROM uic_user WHERE id = ? ";
ArrayList<Object> param = new ArrayList<>();
param.add(1);
List<Map<String, Object>> list1 = jdbcTemplate1.queryForList(sql, param.toArray());
// 源二
String sql2 = "SELECT id, ID_HL, USER_ID, USER_NAME FROM uic_user WHERE id = ? ";
ArrayList<Object> param2 = new ArrayList<>();
param2.add(1);
List<Map<String, Object>> list2 = jdbcTemplate2.queryForList(sql2, param2.toArray()); Map<String, Object> map = new HashMap<>();
map.put("list1", list1);
map.put("list2", list2);
return map;
}
}

Springboot多数据源使用示例的更多相关文章

  1. 搞定SpringBoot多数据源(1):多套源策略

    目录 1. 引言 2. 运行环境 3. 多套数据源 3.1 搭建 Spring Boot 工程 3.1.1 初始化 Spring Boot 工程 3.1.2 添加 MyBatis Plus 依赖 3. ...

  2. 搞定SpringBoot多数据源(2):动态数据源

    目录 1. 引言 2. 动态数据源流程说明 3. 实现动态数据源 3.1 说明及数据源配置 3.1.1 包结构说明 3.1.2 数据库连接信息配置 3.1.3 数据源配置 3.2 动态数据源设置 3. ...

  3. 搞定SpringBoot多数据源(3):参数化变更源

    目录 1. 引言 2. 参数化变更源说明 2.1 解决思路 2.2 流程说明 3. 实现参数化变更源 3.1 改造动态数据源 3.1.1 动态数据源添加功能 3.1.2 动态数据源配置 3.2 添加数 ...

  4. SpringBoot多数据源:动态数据源

    目录 1. 引言 2. 动态数据源流程说明 3. 实现动态数据源 3.1 说明及数据源配置 3.1.1 包结构说明 3.1.2 数据库连接信息配置 3.1.3 数据源配置 3.2 动态数据源设置 3. ...

  5. Spring-Boot配置文件数据源配置项

    Spring-Boot配置文件数据源配置项(常用配置项为红色) 参数 介绍 spring.datasource.continue-on-error = false 初始化数据库时发生错误时,请勿停止 ...

  6. SpringBoot多数据源动态切换数据源

    1.配置多数据源 spring: datasource: master: password: erp_test@abc url: jdbc:mysql://127.0.0.1:3306/M201911 ...

  7. SpringBoot学习笔记(三):SpringBoot集成Mybatis、SpringBoot事务管理、SpringBoot多数据源

    SpringBoot集成Mybatis 第一步我们需要在pom.xml里面引入mybatis相关的jar包 <dependency> <groupId>org.mybatis. ...

  8. springboot2多数据源完整示例

    springboot2 + mybatis + mysql + oracle + sqlserver多数据源的配置 相信很多朋友在开发的时候,可能会碰到需要一个项目,配置多个数据源的需求,可能是同一种 ...

  9. Springboot 多数据源配置,结合tk-mybatis

    一.前言 作为一个资深的CRUD工程师,我们在实际使用springboot开发项目的时候,难免会遇到同时使用多个数据库的情况,比如前脚刚查询mysql,后脚就要查询sqlserver. 这时,我们很直 ...

  10. springboot入门系列(三):SpringBoot教程之RabbitMQ示例

    SpringBoot教程之RabbitMQ示例 SpringBoot框架已经提供了RabbitMQ的使用jar包,开发人员在使用RabbitMQ的时候只需要引用jar包简单的配置一下就可以使用Rabb ...

随机推荐

  1. vue原理:diff、模板编译、渲染过程等

    一.虚拟DOM: 因为DOM操作非常消耗性能,在操作DOM时,会出现DOM的回流(Reflow:元素大小或者位置发生改变)与重绘(元素样式的改变)使DOM重新渲染. 现在的框架Vue和React很少直 ...

  2. 详谈pytest中的xfail

    详谈pytest中的xfail 原文链接: https://docs.pytest.org/en/7.2.x/how-to/skipping.html 链接中详细阐述了skip和xfail两种情况 x ...

  3. Python实现类别变量的独热编码(One-hot Encoding)

      本文介绍基于Python下OneHotEncoder与pd.get_dummies两种方法,实现机器学习中最优的编码方法--独热编码的方法. 目录 1 OneHotEncoder 2 pd.get ...

  4. SpringCloud Stream消息驱动

    简单搭建,没有技术含量,Demo可用 1.介绍 ①产生原因 RabbitMQ.RocketMQ.Kafka.ActiveMQ 在一个项目中,可能存在多种不同的MQ,在不同的MQ中,切换维护开发都很麻烦 ...

  5. linux 基础(10)进程管理

    使用 ps 观察程序 ps -l ps程序可以查询当前在运行的进程信息.ps -l可以列出详细的信息,默认仅列出当前 bash 相关的进程. sudo -i ps -l F S UID PID PPI ...

  6. cs 起源 fps 逆向

    1.找到人物坐标X YZ2.找到鼠标X Y3.易语言读取人物坐标4.读取敌人坐标打开控制台服务器与客户端尽量找客户端 找到XYZ5.实时读取敌人坐标6.三角函数转换屏幕坐标FOV 视场角狙击枪找FOV ...

  7. TCP/IP协议(9): UDP(User Datagram Protocol) 协议 —— 最简单的传输层协议

    TCP/IP协议(9): UDP(User Datagram Protocol) 协议 -- 最简单的传输层协议 关于用户数据报协议(User Datagram Protocol, UDP)协议 UD ...

  8. JZOJ 5372. 【NOIP2017提高A组模拟9.17】猫

    题目大意 对于 \(m = [1,\lfloor \frac n 2 \rfloor]\) 要求在一个序列中恰好选出 \(m\) 个不相邻的数使得权值和最大 其中 \(1\) 的左边是 \(n\),\ ...

  9. golang实现简单的聊天室

    一.server端 package main import ( "fmt" "net" ) var message = make(chan string) ty ...

  10. 马哥教育第一周作业N67044-张铭扬

    1. 图文并茂解释开源许可证 GPL.BSD.MIT.Mozilla.Apache和LGPL的区别? 1)MIT许可证:MIT是六种开源许可证中最自由宽容,它允许使用者自由修改后无需放置版权说明并且可 ...