当前位置: 首页 > news >正文

使用Druid,以jdbc方式配置多数据源

文章目录

  • 背景
  • 示例代码(结合实际进行配置)
  • 总结

背景

当使用Spring Boot项目并需要多数据源时,你可以使用Druid连接池来配置和管理多个数据源。以下是一个示例的配置和代码,以说明如何实现多数据源:

示例代码(结合实际进行配置)

  1. 首先,确保在pom.xml文件中添加Druid依赖:

    	<dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.2.6</version></dependency>
    
  2. 创建两个数据源配置类,分别对应两个数据源(假设为dataSource1和dataSource2):

    	@Configurationpublic class DataSource1Config {@Bean@ConfigurationProperties("spring.datasource.druid.datasource1")public DataSource dataSource1() {return DruidDataSourceBuilder.create().build();}}
    
    	@Configurationpublic class DataSource2Config {@Bean@ConfigurationProperties("spring.datasource.druid.datasource2")public DataSource dataSource2() {return DruidDataSourceBuilder.create().build();}}
    

    在上述代码中,使用@ConfigurationProperties注解将Druid配置属性绑定到数据源对象,并创建Druid数据源实例。

  3. 在application.properties或application.yml文件中配置数据源相关属性:

    • application.properties示例:
    	spring.datasource.druid.datasource1.url=jdbc:mysql://localhost:3306/db1spring.datasource.druid.datasource1.username=username1spring.datasource.druid.datasource1.password=password1spring.datasource.druid.datasource1.driver-class-name=com.mysql.jdbc.Driverspring.datasource.druid.datasource2.url=jdbc:mysql://localhost:3306/db2spring.datasource.druid.datasource2.username=username2spring.datasource.druid.datasource2.password=password2spring.datasource.druid.datasource2.driver-class-name=com.mysql.jdbc.Driver
    
    • application.yml示例:
    spring:datasource:druid:datasource1:url: jdbc:mysql://localhost:3306/db1username: username1password: password1driver-class-name: com.mysql.jdbc.Driverdatasource2:url: jdbc:mysql://localhost:3306/db2username: username2password: password2driver-class-name: com.mysql.jdbc.Driver
    

    在上述配置中,你可以根据实际情况修改URL、用户名和密码等数据源配置属性。

  4. 创建两个数据源的JdbcTemplate对象:

    	@Configurationpublic class JdbcTemplateConfig {@Beanpublic JdbcTemplate jdbcTemplate1(@Qualifier("dataSource1") DataSource dataSource1) {return new JdbcTemplate(dataSource1);}@Beanpublic JdbcTemplate jdbcTemplate2(@Qualifier("dataSource2") DataSource dataSource2) {return new JdbcTemplate(dataSource2);}}
    

    在上述代码中,使用@Qualifier注解指定要注入的数据源对象。

  5. 在需要使用数据源的地方,注入相应的JdbcTemplate并使用:

    	@Servicepublic class UserService {private final JdbcTemplate jdbcTemplate1;private final JdbcTemplate jdbcTemplate2;public UserService(@Qualifier("jdbcTemplate1") JdbcTemplate jdbcTemplate1,@Qualifier("jdbcTemplate2") JdbcTemplate jdbcTemplate2) {this.jdbcTemplate1 = jdbcTemplate1;this.jdbcTemplate2 = jdbcTemplate2;}public void getUserData() {String sql1 = "SELECT * FROM user1";List<Map<String, Object>> users1 = jdbcTemplate1.queryForList(sql1);String sql2 = "SELECT * FROM user2";List<Map<String, Object>> users2 = jdbcTemplate2.queryForList(sql2);// 处理数据...}}
    

    在上述代码中,通过构造函数注入两个JdbcTemplate对象,并使用它们执行相应的SQL查询操作。

总结

通过以上配置和代码,你可以在Spring Boot项目中实现多数据源的使用。每个数据源都有单独的Druid配置,并通过JdbcTemplate对象进行数据库操作。

如果大家遇到类似问题,欢迎评论区讨论,如有错误之处,敬请留言。

http://www.lryc.cn/news/122829.html

相关文章:

  • RabbitMQ基础(2)——发布订阅/fanout模式 topic模式 rabbitmq回调确认 延迟队列(死信)设计
  • 2. VisionOS平台概述
  • MySql存储过程详解
  • CRM 系统实施风险分析
  • 保持城市天际线(力扣)贪心 JAVA
  • 电路综合原理与实践---T衰减与PI衰减的详细计算理论与设计仿真
  • 1. 基于UDP的TFTP文件传输
  • django中使用bootstrap-datepicker时间插件
  • 《golang设计模式》第二部分·结构型模式-02-桥接模式(Bridge)
  • 【2023年11月第四版教材】《第4章-信息系统管理之管理要点(第四版新增章节)(第二部分)》
  • 【算法——双指针】LeetCode 1089 复写零
  • 基于飞桨图学习框架实现的城市地点动态关系挖掘
  • 3.1 Qt样式选择器
  • react钩子副作用理解
  • 浅谈Spring与字节码生成技术
  • 时序预测 | MATLAB实现基于BiLSTM双向长短期记忆神经网络的时间序列预测-递归预测未来(多指标评价)
  • Flink多流处理之coGroup(协同分组)
  • 基于TICK的DevOps监控实战(Ubuntu20.04系统,Telegraf+InfluDB+Chronograf+Kapacitor)
  • 十九、docker学习-Dockerfile
  • Docker容器的数据卷
  • 推荐工具!使终端便于 DevOps 和 Kubernetes 使用
  • 抖音小程序实现less语言编译样式
  • 介绍 TensorFlow 的基本概念和使用场景
  • 抖音关键词搜索小程序排名怎么做
  • Windows下升级jdk1.8小版本
  • [保研/考研机试] KY235 进制转换2 清华大学复试上机题 C++实现
  • 机器学习 | Python实现KNN(K近邻)模型实践
  • Mybatis 源码 ③ :SqlSession
  • Python 潮流周刊#15:如何分析异步任务的性能?
  • 二叉搜索树K和KV结构模拟