springboot+mysql 多数据源配置

SpringBoot实现mysql多数据源配置(Springboot+Mybatis) 使用postman进行接口测试,在这里只展示insertUser的测试界面postman调用一个数据源的insertUser接口第一个数据库查询结果postman调用一个数据源的insertUser接口第二个数据库查询结果。 阅读详情
Springboot 多数据源配置
1、配置文件
#主数据源配置
master.spring.datasource.driver = com.mysql.jdbc.Driver
master.spring.datasource.url = ...
master.spring.datasource.username = ...
master.spring.datasource.password = ...
master.spring.datasource.initialPoolSize = 1
master.spring.datasource.minIdle = 10
master.spring.datasource.maxActive = 100
#配置另一个数据源
second.spring.datasource.driver = com.mysql.jdbc.Driver
second.spring.datasource.url = ...
second.spring.datasource.username = ...
second.spring.datasource.password = ...
second.spring.datasource.initialPoolSize = 1
second.spring.datasource.minIdle = 10
second.spring.datasource.maxActive = 100
2、创建生成数据源的类
@Configuration
@Profile(value = {"default", "prod"})
public class DataSourceConfig {
    @Value("${master.spring.datasource.url}")
    private String url;
    @Value("${master.spring.datasource.username}")
    private String user;
    @Value("${master.spring.datasource.password}")
    private String password;
    @Value("${master.spring.datasource.driver}")
    private String driverClass;
    @Value("${master.spring.datasource.initialPoolSize}")
    private int initialPoolSize;
    @Value("${master.spring.datasource.minIdle}")
    private int minIdle;
    @Value("${master.spring.datasource.maxActive}")
    private int maxActive;

    @Value("${second.spring.datasource.url}")
    private String url2;
    @Value("${second.spring.datasource.username}")
    private String user2;
    @Value("${second.spring.datasource.password}")
    private String password2;
    @Value("${second.spring.datasource.driver}")
    private String driverClass2;
    @Value("${second.spring.datasource.initialPoolSize}")
    private int initialPoolSize2;
    @Value("${second.spring.datasource.minIdle}")
    private int minIdle2;
    @Value("${second.spring.datasource.maxActive}")
    private int maxActive2;



    @Primary
    @Bean(name = "localDataSource", destroyMethod = "close", autowire = Autowire.BY_NAME)
    public DruidDataSource localDataSource() {
        return getDruidDataSource(url, user, password, initialPoolSize, minIdle, maxActive);
    }

    @Bean(name = "local2DataSource", destroyMethod = "close", autowire = Autowire.BY_NAME)
    public DruidDataSource local2DataSource() {
        return getDruidDataSource(url2, user2, password2, initialPoolSize2, minIdle2, maxActive2);
    }
		//数据源生成函数
    private DruidDataSource getDruidDataSource(String jdbcUrl, String jdbcUser, String jdbcPassword,
                                               int initialPoolSize, int minIdle, int maxActive) {
        DruidDataSource druidDataSource = new DruidDataSource();
        druidDataSource.setDriverClassName("com.mysql.jdbc.Driver");
        druidDataSource.setUrl(jdbcUrl);
        druidDataSource.setUsername(jdbcUser);
        druidDataSource.setPassword(jdbcPassword);
        druidDataSource.setInitialSize(initialPoolSize);
        druidDataSource.setMinIdle(minIdle);
        druidDataSource.setMaxActive(maxActive);
        return druidDataSource;
    }
}
3、配置数据源1
@Configuration
//注意basePackages中的路径一定要扫描到数据源1repository具体的文件夹下,xxx是自己的路径
@MapperScan(basePackages = {"com.xxx.xxx.xxx.xxx"},
        sqlSessionTemplateRef = "localSqlSessionTemplate")
@EnableApolloConfig("mysql")
public class LocalDaoConfiguration {
    @Primary
    @Bean(name = "localSqlSessionFactory")
    public SqlSessionFactory sqlSessionFactory(@Qualifier("localDataSource") DataSource dataSource) throws Exception {
        SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
        sqlSessionFactoryBean.setDataSource(dataSource);

        ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
      	//xxx数据源1 xml是自己的路径
        Resource[] resources = resolver.getResources("classpath:mapping/xxx/*.xml");

        Resource[] resArray = Arrays.copyOf(resources, resources.length);
        sqlSessionFactoryBean.setMapperLocations(resArray);

        return sqlSessionFactoryBean.getObject();
    }

    @Primary
    @Bean(name = "localTransactionManager")
    public DataSourceTransactionManager transactionManager(@Qualifier("localDataSource") DataSource dataSource) {
        DataSourceTransactionManager dataSourceTransactionManager = new DataSourceTransactionManager();
        dataSourceTransactionManager.setDataSource(dataSource);
        return dataSourceTransactionManager;
    }

    @Primary
    @Bean(name = "localTransactionTemplate")
    public TransactionTemplate transactionTemplate(
            @Qualifier("localTransactionManager") DataSourceTransactionManager transactionManager) {
        TransactionTemplate transactionTemplate = new TransactionTemplate(transactionManager);
        return transactionTemplate;
    }

    @Primary
    @Bean(name = "localSqlSessionTemplate")
    public SqlSessionTemplate testSqlSessionTemplate(
            @Qualifier("localSqlSessionFactory") SqlSessionFactory sqlSessionFactory) {
        return new SqlSessionTemplate(sqlSessionFactory);
    }

}
4、配置数据源2
@Configuration
//注意basePackages中的路径一定要扫描到数据源2repository具体的文件夹下,xxx是自己的路径
@MapperScan(basePackages = {"com.xxx.xxx.xxx.xxx"},
        sqlSessionTemplateRef = "local2SqlSessionTemplate")
@EnableApolloConfig("mysql")
public class LocalDaoConfiguration {
    @Primary
    @Bean(name = "local2SqlSessionFactory")
    public SqlSessionFactory sqlSessionFactory(@Qualifier("local2DataSource") DataSource dataSource) throws Exception {
        SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
        sqlSessionFactoryBean.setDataSource(dataSource);

        ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
      	//xxx是数据源2 自己的路径
        Resource[] resources = resolver.getResources("classpath:mapping/xxx/*.xml");

        Resource[] resArray = Arrays.copyOf(resources, resources.length);
        sqlSessionFactoryBean.setMapperLocations(resArray);

        return sqlSessionFactoryBean.getObject();
    }

    @Primary
    @Bean(name = "local2TransactionManager")
    public DataSourceTransactionManager transactionManager(@Qualifier("local2DataSource") DataSource dataSource) {
        DataSourceTransactionManager dataSourceTransactionManager = new DataSourceTransactionManager();
        dataSourceTransactionManager.setDataSource(dataSource);
        return dataSourceTransactionManager;
    }

    @Primary
    @Bean(name = "local2TransactionTemplate")
    public TransactionTemplate transactionTemplate(
            @Qualifier("local2TransactionManager") DataSourceTransactionManager transactionManager) {
        TransactionTemplate transactionTemplate = new TransactionTemplate(transactionManager);
        return transactionTemplate;
    }

    @Primary
    @Bean(name = "local2SqlSessionTemplate")
    public SqlSessionTemplate testSqlSessionTemplate(
            @Qualifier("local2SqlSessionFactory") SqlSessionFactory sqlSessionFactory) {
        return new SqlSessionTemplate(sqlSessionFactory);
    }

}
5、就可以愉快的运行了
SpringBoot 多数据源配置 适用MySQL及Oracle 1. 配置文件 这里采用yml配置文件 datasource: master: # 数据源1 jdbc-url: jdbc:mysql://192.168.1.8:3306/test_v1.0?useUnicode=true&characterEncoding=UTF-8&&serverTimezone=GMT%2B8 username: developer password: test driver-class-name 阅读详情

相关推荐

Spring Boot多数据源配置教程:使用spring-data-jpa与MySQL

在现代的Java企业级应用中,数据是关键的业务资产,随着业务的不断扩展和用户量的增长,单点数据库架构往往难以满足日益增长的业务需求。为了提升系统的整体性能、优化数据读写效率、支持业务的模块化发展以及简化数据库的维护,引入多数据源成为了系统设计的必要选择。Spring Boot结合spring-data-jpa为我们提供了便捷的方式来配置和管理多数据源。

weixin_42527665的博客 1312

Spring Boot整合MySQL多数据源,这里有详细的代码,一看就会

本文介绍了Spring Boot如何整合MySQL多数据源,并提供了代码框架、配置类、配置文件、详细步骤说明和单元测试代码。在实际开发中,可以根据需要增加或删除数据源,只需要在中添加或删除数据源配置即可。

weixin_40648256的博客 1941

100kHz手持LCR表设计:高频阻抗测量与校准实战解析

阻抗测量是电子元件测试的基础,LCR表通过施加正弦激励并分析电压电流的幅值与相位,即可获取电容、电感、电阻的等效参数。在开关电源、无线充电等高频应用场景中,元件在100kHz下的ESR和阻抗特性尤为关键,传统10kHz手持仪表难以满足需求。本文从自动平衡桥原理出发,探讨如何将台式电桥的核心能力浓缩至手持设备,重点剖析高频寄生参数抑制、模拟链路设计、数字相敏检波算法及开路短路校准方法。通过实测数据验证,在100kHz频率下基本精度可达0.5%以内,为维修现场、产线抽检及硬件调试提供了可携带的精密测量方案。全文

weixin_33910191的博客 397

springboot连接两个mysql

springboot连接两个mysql

lanxiaziyi的专栏 2449

C++动态规划详解

动态规划思想 一、动态规划概念: 动态规划(dp)是研究多步决策过程最优化问题的一种数学方法。在动态规划中,为了寻找一个问题的最优解(即最优决策过程),将整个问题划分成若干个相应的阶段,并在每个阶段都根据先前所作出的决策作出当前阶段最优决策,进而得出整个问题的最优解。即记住已知问题的答案,在已知的答案的基础上解决未知的问题。 在这类问题中,可能会有许多可行解。每一个解都对应于一个值,我们希望找到具有最优值的解。动态规划算法与分治法类似,其基本思想也是将待求解问题分解成若干个子问题,先求解子问题,然后

weixin_51951103的博客 2万+

利用mininet模拟SDN架构并进行DDoS攻击与防御模拟(Ryu+mininet+sflow+postman)

1、知识概述 (1)软件定义网络: (2)mininet: Mininet是一个强大的网络仿真平台,通过这个平台,我们可以很方便的模拟真实环境中的网络操作与架构。特别是SDN,在真实网络中进行相关的网络实验有一定难度,自然需要一个仿真平台可以学习这种新型的网络架构,而Mininet就应运而生,承担了这个光荣而艰巨的使命。Mininet自带交换机(switchs)、主机(hosts)、控制器(controllers),同时,在mininet上可以安装OpenvSwitch、多种控制器(NOX\POX

北风 1万+

如何在springboot里配置多个mysql数据源?

如果项目中,需要加载多个数据源,即在一个应用中访问不同的mysql数据库,那么需要通过配置多个数据源来实现加载。 一、application.properties文件 spring.datasource.one.url=jdbc:mysql://localhost:3306/db3?useUnicode=true&characterEncoding=utf-8&am...

Dream_it_possible!的博客 7015

中国区ASP服务性规范考试

10、每次现场维护服务,工程师需按照400要求达到现场的时间与客户联系,在抵达现场、故障恢复后两个时间点分别向400报CALL ,如与客户联系变更到现场时间点,也需向400电话备案(400-822-9999)……20、工程师小B 在接到客户故障申报后赶到客户现场,发现问题无法解决,于是及时将情况反馈至技术支持响应工程师小C ,小B 就和小C 协商由小C 远程解决此问题,后小B 离开客户现场。18、小L 到客户现场交付安装服务。6、EPMS 中上载初验证书的命名规则为:合同号+初验的客户签署日期……

2301_76197693的博客 1906

Spring Boot配置MySQL多数据源

在日常开发中我们都是以单个数据库进行开发,在小型项目中是完全能够满足需求的。 但是,当我们牵扯到像淘宝、京东这样的大型项目的时候,单个数据库就难以承受用户的CRUD操作。 那么此时,我们就需要使用多个数据源进行读写分离的操作,这种方式也是目前一种流行的数据管理方式。

csl12919的博客 4796

Halcon形状模板匹配实战:inspect_shape_model参数优化指南

本文深入解析Halcon形状模板匹配中inspect_shape_model参数的优化技巧,涵盖NumLevels和Contrast参数的实战应用。通过具体案例展示如何平衡匹配速度与精度,帮助开发者高效调试形状模型,提升工业视觉检测的准确性和效率。

weixin_30342209的博客 618

为什么PCB设计中的50Ω阻抗如此重要?从USB到以太网的实战解析

本文深入解析了PCB设计中50Ω特征阻抗的核心重要性及其工程权衡起源。文章从传输线理论出发,阐释了阻抗匹配对防止信号反射、确保信号完整性的关键作用,并对比了USB、以太网等不同应用场景的阻抗标准。同时,文章结合实际案例,剖析了在两层板等简单设计中实现精准阻抗控制的难点与实战解决方案。

weixin_29268385的博客 297

SpringBoot多数据源配置(MongoDB、Mysql)

一、配置mongodb多数据源 1、application.yml配置文件 spring: data: mongodb: primary: host: 192.168.0.11 port: 27017 database: VISCACHE secondary: ...

weixin_39300480的博客 2871

STM32F4 Flash数据的保存和读取。

STM32F4 Flash数据的保存和读取。

张一西的博客 9216

springBoot 配置多数据源,以mysql为例

在springBoot 项目中,配置mysql数据源配置,做到可以对数据的操作。 1:application.properties中,添加多个mysql连接: 2:创建DataSourceConfig文件。 @Configuration public class DataSourceConfig { private static Log log = LogFacto...

JThreeStone的博客 764

Prompt Engineering 学习指南:从入门到精通的最佳路径与资源

随着大型语言模型(LLM)能力的飞速发展,Prompt Engineering(提示工程)已成为人与AI协作的核心技能。本报告旨在为不同水平的学习者提供一条清晰、高效的学习路径,整合了当前社区公认的最佳实践和顶级开源资源,帮助您系统地掌握 Prompt Engineering,释放 LLM 的全部潜力。保持好奇心,不断尝试,您将能驾驭语言模型这一强大的工具,创造出前所未有的价值。超越简单的“一问一答”,学习如何将 Prompt Engineering 与外部工具和数据结合,构建强大的 AI 应用。

shiter编写程序的艺术 698

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

SpringBoot配置多数据源(MySQL+SQLServer)

SpringBoot配置多数据源(MySQL+SQLServer) 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 新的改变 我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点...

baidu_38913300的博客 2886

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SpringBoot 配置多数据源(Sql Server、MySql)

创建SpringBoot项目就不说了。(直接使用IDEA创建就好了) 整个目录结构如图:(不用管图中报错,项目是在另一台电脑上写的。报错是没有jar包,因为网络比较慢。) 1、主要pom.xml <dependencies> <dependency> <groupId>org.springframework......

添砖加瓦 1万+

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

SpringBoot多数据源配置(hive/mysql)

简介 在项目实践中,同一个项目可能需要整合多种数据源,把分散到各个数据库、数据表的数据都查询统计出来; SpringBoot有默认的数据源配置,本篇博客将整合SpringBoot多数据源配置,包括mysql、hive等,通过jdbctemplate或mybatis进行使用; 版本配置(版本可自行选择,这里是博主的测试版本):jdk1.8,springboot1.5.9,hive2.1.1,h...

alan_liuyue的博客 1万+

SpringBoot配置多数据源Mysql+Sqlite

​ 配置了一下druid的多数据源配置,尝试了很多方法,Spring boot关于对Mysql和Sqlite多数据源的配置,记录下来: 涉及技术点: Springboot + Druid + Mysql +Sqlite 一、引入Jar包: <!--Spring Boot依赖--> <dependency> <groupId>org.sprin...

MengW9的博客 2126

springBoot使用mysql+oracle多数据源配置

在mysql数据库基础上增加对Oracle数据库的支持

YHK_223的博客 1719

SpringBoot配置MySQL和Oracle多数据源(JdbcTemplate)

1.在pom.xml里面添加依赖: <dependency> <groupId>com.oracle</groupId> <artifactId>ojdbc6</artifactId> <version>11.2.0.3</version> </dependency> <dependency> <groupId>com.microsoft.sqlse

weixin_39643007的博客 4384

SpringBoot-MySQL多数据源配置

最近开发过程中,用到多数据源配置,在此记录一下。后面方便使用。 1.application.properties文件配置 #mysql数据库连接配置 spring.datasource.mysql.driverClassName = com.mysql.jdbc.Driver spring.datasource.mysql.jdbc-url = jdbc:mysql://122.115.3...

郄梦岩的博客 521

springboot配置多数据源 mybatis + postgresql + mysql

springboot 多数据源配置 mybatis + postgresql + mysql

weixin_43861785的博客 2526

mysql 多数据源配置文件_SpringBoot多数据源配置详细教程

文章概要简单多数据配置JdbcTemplate 多数据源配置mybatis多数据源配置mybatis-plus多数据源配置多数据源配置首先是配置文件spring:# 数据源配置datasource:ds1:#数据源1driver-class-name:com.mysql.jdbc.Driver # mysql的驱动你可以配置别的关系型数据库url:jdbc:mysql://ip:3306/db1 ...

weixin_31518073的博客 485

Springboot配置mysql数据源+druid连接池,配置多数据源

Springboot配置mysql数据源+druid连接池,支持多数据源 一、配置mysql+druid 1、导入数据源所需jar,此处只导入了必要的,其他工具自行配置 <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>

初代二手码农 4227

【Spring】SpringBoot 配置MySql和Doris多数据源

嗨, 大家好, 最近公司想要使用DorisDB做数据存储, 经过几天对Doris的研究,发现Dorsi连接方式其实用的就是JDBC连接方式。今天把这两天的学习成果记录一下。也希望对看到此文章的人有所帮助。对于文章中的问题, 也希望大神给出指点。具体doris的安装配置这里就不细说了, 官网都有相关资料。 SpringBoot配置Mysql和Doris数据源, 其实跟配置Mysql多个数据源是一个样的。 1.maven依赖 <?xml version="1.0"...

1万+
上一篇: org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)
下一篇: java+vue实现excel文件从服务器下载
code_AC
博客等级 码龄12年 255粉丝 109原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值