首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用spring配置多个数据源,包括namedparameterjdbctemplate

Spring是一个开源的Java框架,用于构建企业级应用程序。它提供了一个强大的IoC(控制反转)容器和AOP(面向切面编程)功能,使开发人员能够更轻松地构建可维护和可扩展的应用程序。

在Spring中配置多个数据源可以通过以下步骤完成:

  1. 导入所需的依赖:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency>
  2. application.propertiesapplication.yml文件中配置数据源信息:# 第一个数据源 spring.datasource.url=jdbc:mysql://localhost:3306/db1 spring.datasource.username=username1 spring.datasource.password=password1 spring.datasource.driver-class-name=com.mysql.jdbc.Driver

第二个数据源

spring.datasource.secondary.url=jdbc:mysql://localhost:3306/db2

spring.datasource.secondary.username=username2

spring.datasource.secondary.password=password2

spring.datasource.secondary.driver-class-name=com.mysql.jdbc.Driver

代码语言:txt
复制
  1. 创建数据源配置类: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.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate; import javax.sql.DataSource;

@Configuration

public class DataSourceConfig {

代码语言:txt
复制
   @Bean(name = "primaryDataSource")
代码语言:txt
复制
   @Qualifier("primaryDataSource")
代码语言:txt
复制
   @ConfigurationProperties(prefix = "spring.datasource")
代码语言:txt
复制
   public DataSource primaryDataSource() {
代码语言:txt
复制
       return DataSourceBuilder.create().build();
代码语言:txt
复制
   }
代码语言:txt
复制
   @Bean(name = "secondaryDataSource")
代码语言:txt
复制
   @Qualifier("secondaryDataSource")
代码语言:txt
复制
   @ConfigurationProperties(prefix = "spring.datasource.secondary")
代码语言:txt
复制
   public DataSource secondaryDataSource() {
代码语言:txt
复制
       return DataSourceBuilder.create().build();
代码语言:txt
复制
   }
代码语言:txt
复制
   @Bean(name = "primaryJdbcTemplate")
代码语言:txt
复制
   public JdbcTemplate primaryJdbcTemplate(@Qualifier("primaryDataSource") DataSource dataSource) {
代码语言:txt
复制
       return new JdbcTemplate(dataSource);
代码语言:txt
复制
   }
代码语言:txt
复制
   @Bean(name = "secondaryJdbcTemplate")
代码语言:txt
复制
   public JdbcTemplate secondaryJdbcTemplate(@Qualifier("secondaryDataSource") DataSource dataSource) {
代码语言:txt
复制
       return new JdbcTemplate(dataSource);
代码语言:txt
复制
   }
代码语言:txt
复制
   @Bean(name = "primaryNamedParameterJdbcTemplate")
代码语言:txt
复制
   public NamedParameterJdbcTemplate primaryNamedParameterJdbcTemplate(@Qualifier("primaryDataSource") DataSource dataSource) {
代码语言:txt
复制
       return new NamedParameterJdbcTemplate(dataSource);
代码语言:txt
复制
   }
代码语言:txt
复制
   @Bean(name = "secondaryNamedParameterJdbcTemplate")
代码语言:txt
复制
   public NamedParameterJdbcTemplate secondaryNamedParameterJdbcTemplate(@Qualifier("secondaryDataSource") DataSource dataSource) {
代码语言:txt
复制
       return new NamedParameterJdbcTemplate(dataSource);
代码语言:txt
复制
   }

}

代码语言:txt
复制
  1. 在需要使用数据源的地方注入NamedParameterJdbcTemplate:import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate; import org.springframework.stereotype.Repository;

@Repository

public class MyRepository {

代码语言:txt
复制
   private final NamedParameterJdbcTemplate primaryNamedParameterJdbcTemplate;
代码语言:txt
复制
   private final NamedParameterJdbcTemplate secondaryNamedParameterJdbcTemplate;
代码语言:txt
复制
   @Autowired
代码语言:txt
复制
   public MyRepository(@Qualifier("primaryNamedParameterJdbcTemplate") NamedParameterJdbcTemplate primaryNamedParameterJdbcTemplate,
代码语言:txt
复制
                       @Qualifier("secondaryNamedParameterJdbcTemplate") NamedParameterJdbcTemplate secondaryNamedParameterJdbcTemplate) {
代码语言:txt
复制
       this.primaryNamedParameterJdbcTemplate = primaryNamedParameterJdbcTemplate;
代码语言:txt
复制
       this.secondaryNamedParameterJdbcTemplate = secondaryNamedParameterJdbcTemplate;
代码语言:txt
复制
   }
代码语言:txt
复制
   // 使用primaryNamedParameterJdbcTemplate执行操作
代码语言:txt
复制
   // ...
代码语言:txt
复制
   // 使用secondaryNamedParameterJdbcTemplate执行操作
代码语言:txt
复制
   // ...

}

代码语言:txt
复制

通过以上步骤,我们成功配置了多个数据源,并且可以在需要的地方使用NamedParameterJdbcTemplate来执行数据库操作。这样可以方便地访问不同的数据库,并且可以根据具体需求选择使用哪个数据源。

腾讯云提供了一系列与数据库相关的产品,例如云数据库MySQL、云数据库MariaDB、云数据库SQL Server等。您可以根据具体需求选择适合的产品。以下是腾讯云云数据库MySQL的产品介绍链接地址:腾讯云云数据库MySQL

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Spring配置数据源

数据源(连接池)的作用 数据源(连接池)是提高程序性能如出现的 事先实例化数据源,初始化部分连接资源 使用连接资源时从数据源中获取 使用完毕后将连接资源归还给数据源 常见的数据源(连接池):DBCP、C3P0...数据源的开发步骤 导入数据源的坐标和数据库驱动坐标 创建数据源对象 设置数据源的基本连接数据 使用数据源获取连接资源和归还连接资源 3. 数据源的手动创建 导入c3p0和druid的坐标 <!...@Test //测试手动创建 c3p0 数据源(加载 properties 配置文件) public void test3() throws Exception { /...Spring配置数据源 可以将DataSource的创建权交由Spring容器去完成 DataSource有无参构造方法,而Spring默认就是通过无参构造方法实例化对象的 DataSource要想使用需要通过...@Test //测试Spring容器产生数据源对象 public void test4() throws Exception { ApplicationContext

82800

Spring Boot 如何整合多个数据源

那么随着业务的不断扩展,业务量的增加,这时候就会牵扯到分库分表,虽然这个词听起来很熟悉,作为程序员也很容易理解,但是我想应该也有不少读者没接触过分库分表,今天我们不聊如何分库分表,而是聊SpringBoot如何整合多个数据源的事情...也就是如何接入不同的(多个)数据库。 ? 我们直接开始,我们直接创建一个干净的SpringBoot应用。...application.yml文件,将数据库的信息配置进去 spring: datasource: test1: driver-class-name: com.mysql.cj.jdbc.Driver...,这也是整合多个数据源最为关键的部分。...SqlSessionFactory sqlSessionFactory) { return new SqlSessionTemplate(sqlSessionFactory); } } 第二个数据源配置

56830

Spring数据源配置系列(一)——多数据源配置

数据源 Spring中,可以通过AbstractRoutingDataSource来实现多数据源管理。...在Spring注册多个数据源 2. 新建类继承AbstractRoutingDataSource,并配置 3. 给TheadLocal赋值 这种技术现在已经过时,现在大部分使用数据库代理。...Spring注册多个数据源 <bean id="cmsDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource...AbstractRoutingDataSource是<em>spring</em>的多<em>数据源</em>管理的抽象类,这里我们需要新建一个类继承它,并重写determineCurrentLookupKey方法,这个方法是多<em>数据源</em>的调用的逻辑部分...在<em>spring</em>的<em>配置</em>DynamicDataSource时,需要指定targetDataSources,这就是目标<em>数据源</em>集,是一个map,key就是通过targetDataSources获得对应的<em>数据源</em>。

2K20

spring 整合JDBC

使用Spring提供的三个JDBC模板类(JdbcTemplate、NamedParameterJdbcTemplate、SimpleJdbcTemplate)操作数据库 一、JdbcTemplate...三、SimpleJdbcTemplate利用Java5的特性,比方自己主动装箱、通用和可变參数列表来简化JDBC模板的使用 SimpleJdbcTemplate内部包括了一个NamedParameterJdbcTemplate...1、使用JDBC Template JdbcTemplate是一个辅助类,封装了JDBC的操作,直接使用JdbcTemplate非常easy~Template仅仅依赖于数据源。...本样例使用的DriverManagerDataSource,是一个“伪”数据源,仅仅是模拟了形式,并没事实现数据源的功能。...另外:Spring的xml配置能够非常好的用在这里,在xml中配置,基本流程例如以下: (1)声明DataSrouce的Bean,这里用BasicDataSource,就是DBCP数据源(Tomcat

25230

Spring Boot之JdbcTemplate多数据源配置使用

之前在介绍使用JdbcTemplate和Spring-data-jpa时,都使用了单数据源。...在单数据源的情况下,Spring Boot的配置非常简单,只需要在application.properties文件中配置连接参数即可。...但是往往随着业务量发展,我们通常会进行数据库拆分或是引入其他数据库,从而我们需要配置多个数据源,下面基于之前的JdbcTemplate和Spring-data-jpa例子分别介绍两种多数据源配置方式。...多数据源配置 创建一个Spring配置类,定义两个DataSource用来读取application.properties中的不同配置。...如下例子中,主数据源配置spring.datasource.primary开头的配置,第二数据源配置spring.datasource.secondary开头的配置

1.2K10

Spring Boot配置数据源

业务发展后,一些查询类型的请求需要切换到备用数据源,这个时候需要使用数据源配置,公司的项目使用的不是主备,而是需要去查询postgresql库(业务库是mysql,所以不是简单的主从,而且语句也可能变化...spring.datasource.primary的配置作为primary数据源 @ConfigurationProperties(prefix = "spring.datasource.primary...spring.datasource.second的配置作为second数据源 @ConfigurationProperties(prefix = "spring.datasource.second...:application.yml 需要注意的是: 这里的配置实际上都是Hikari数据源配置spring: datasource: primary: jdbc-url: jdbc...Queries leading to data modification are not allowed 使用MyBatis-Plus 需要在数据源配置的时候把SqlSessionFactoryBean

67230

Spring Boot的数据源配置

在本文中,我们将介绍Spring Boot中如何配置数据源,并提供一些示例代码,帮助开发者更好地了解如何使用数据源。...数据源配置Spring Boot中,配置数据源有两种方式:使用Spring Boot自动配置,或手动配置。...此外,Spring Boot还提供了许多其他的自动配置选项,例如:数据源类型:默认情况下,Spring Boot使用HikariCP作为数据源。...手动配置数据源如果我们需要更精细地控制数据源配置,或者需要使用非常定制化的数据源,我们可以手动配置数据源。在手动配置数据源时,我们需要创建一个数据源的Bean,并将其注入到需要使用数据源的地方。...使用多个数据源在一些应用程序中,我们可能需要同时连接多个数据库。在Spring Boot中,我们可以使用多个数据源

3.4K40

SpringBoot数据库源码解析Template实例化操作

Jdbc TemplateAutoConfiguration 在实践过程中,除了数据源配置外,我们还会经常用到 Jdbc Template。...无论是 JdbcTemplate 还是 NamedParameterJdbcTemplate 的实例化,注解部分都添加了@Primary,用来表示当存在多个同类型的对象时,当前对象会被优先注入。...异常案例分析 Spring Boot 中大多数自动配置引入之后不需要用户操作什么便可自动生效,但是数据源配置算是一个例外。...这是因为如果引入了该 starter,等于变相引入了 spring-jdbc,而数据源自动化配置类 DataSourceAutoConfiguration 生效的限定条件为 classpath 中司时存在...而此时,在 application.properties 中如果没有配置连接数据库的相关配置,便会抛出异针对此异常,如果暂时不考虑使用数据库连接,可去掉 spring-boot-starter-jdbc

73720

spring boot 配置数据源

前言在日常生活中,我们不可避免要在工程中配置多个数据源,下面我就给大家讲一下怎么在spring boot里面配置数据源,并且在文章结尾给出一个github的demo,希望对大家有所帮助2. application.yml...配置多个数据库spring: datasource: write: url: jdbc:mysql://192.168.31.155:3306/test_1?...characterEncoding=UTF-8&useSSL=false username: root password: root3. spring读取配置文件package com.multi.datasource.config...,通过该类中的determineCurrentLookupKey决定使用哪个数据源 */ @Bean("routingDataSource") public AbstractRoutingDataSource...resolver.getResources("classpath*:mapper/*Mapper.xml")); return bean.getObject(); } /** * 设置事务,事务需要知道当前使用的是哪个数据源才能进行事务处理

40700

Spring Boot 1.0 && 2.0 + JPA 多数据源配置使用

Spring Boot 2.1.0.RELEASE,如果使用的是 Spring Boot 1.5.17.RELEASE 这个版本,只需要调整下面有做说明的几处地方 连接配置 在application.yml...中定义如下信息: spring: jpa: hibernate: # 多数据源下,该属性不生效,需要在配置中额外指定,这里仅表示普通定义 ddl-auto: create-drop...根据上面定义的配置信息,配置这两个数据源: // Spring Boot 1.0+ ,DataSourceBuilder所在包位置为:org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder...Boot and Spring Data Spring JPA – Multiple Databases Spring Boot多数据源配置使用 How to connect to Multiple...databases with Spring Data JPA Springboot2.0中Hibernate默认创建的mysql表为myisam引擎问题 关于springboot2.0.0配置数据源出现

1.6K30

spring jdbctemplate

此包内有很多重要的类,包括:JdbcTemplate类、SimpleJdbcInsert类,SimpleJdbcCall类,以及NamedParameterJdbcTemplate类。...2)datasource 即数据源包,访问数据源的实用工具类。它有多种数据源的实现,可以在JavaEE容器外部测试JDBC代码。 3)object 即对象包,以面向对象的方式访问数据库。...二、配置 以MySQL数据库为例,开始简单的数据源配置: @Configuration @ComponentScan("com.ch.myalbumjdbc") public class SpringJdbcConfig..., 5, "Bill", "Gates", "USA"); } 2、查询与命名参数 要获得命名参数的支持,我们需要使用Spring JDBC提供的其它JDBC模板——NamedParameterJdbcTemplate...NamedParameterJdbcTemplate执行批处理操作 对于批处理操作,还可以选择使用NamedParameterJdbcTemplate的batchUpdate() API来执行。

47130

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券