SpringBoot 配置多个JdbcTemplate的实现步骤
前言
开发中使用多数据源配置是一个非常常见的需求。Spring和SpringBoot中,对此都有相应的解决方案。
多数据源的首选分布式数据库中间件MyCat或者Sharing-Jdbc去解决相关问题。使用MyCat,然后分表策略使用sharding-by-intfile。
本文我们只讨论如何在SpringBoot中简单配置多个JdbcTemplate。
一、创建一个SpringBoot 项目,并引入如下依赖
<!--web应用-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--jdbc -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<!-- mysql驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!--druid-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
</dependency>
<!--单元测试-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>二、在application.properties中添加数据源配置
spring.datasource.one.url=jdbc:mysql://localhost:3306/oy1?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC spring.datasource.one.jdbcUrl=jdbc:mysql://localhost:3306/oy1?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC spring.datasource.one.username=*** spring.datasource.one.password=*** spring.datasource.one.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.two.url=jdbc:mysql://localhost:3306/oy2?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC spring.datasource.two.jdbcUrl=jdbc:mysql://localhost:3306/oy2?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC spring.datasource.two.username=*** spring.datasource.two.password=*** spring.datasource.two.driver-class-name=com.mysql.cj.jdbc.Driver
三、新增DadaSourceConfig.java配置多个数据源以及JdbcTemplate,代码如下:
package com.bestoyc.jdbctemplatedemo;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.jdbc.core.JdbcTemplate;
import javax.sql.DataSource;
/**
* @author oyc
* @Title: DataSourceConfig
* @ProjectName jdbctemplatedemo
* @Description: TODO
* @date 2019/9/22 0:47
*/
@Configuration
public class DataSourceConfig {
@Bean
@ConfigurationProperties(prefix = "spring.datasource.one")
@Qualifier("oneDataSource")
DataSource dsOne() {
return DataSourceBuilder.create().build();
}
@Bean
@ConfigurationProperties(prefix = "spring.datasource.two")
@Qualifier("twoDataSource")
DataSource dsTwo() {
return DataSourceBuilder.create().build();
}
@Bean(name = "oneJdbcTemplate")
public JdbcTemplate primaryJdbcTemplate(
@Qualifier("oneDataSource") DataSource dataSource) {
return new JdbcTemplate(dataSource);
}
@Bean(name = "twoJdbcTemplate")
public JdbcTemplate secondaryJdbcTemplate(
@Qualifier("twoDataSource") DataSource dataSource) {
return new JdbcTemplate(dataSource);
}
}
四、多个JdbcTemplate使用
@Autowired
@Qualifier("oneJdbcTemplate")
private JdbcTemplate oneJdbcTemplate;
@Autowired
@Qualifier("twoJdbcTemplate")
private JdbcTemplate twoJdbcTemplate;
@RequestMapping("/createUser1")
public String createUser1() {
oneJdbcTemplate.update("INSERT INTO `user`(`id`, `name`, `age`) VALUES (?,?,?);", null,"ouyang", 12);
return "success";
}
@RequestMapping("/createUser2")
public String createUser2() {
twoJdbcTemplate.update("INSERT INTO `user`(`id`, `name`, `age`) VALUES (?,?,?);", null,"ouyang", 12);
return "success";
}这里只是简单使用,读者可以根据自己的业务需要添加相应的AOP用户数据源的切换。
到此这篇关于SpringBoot 配置多个JdbcTemplate的文章就介绍到这了,更多相关SpringBoot 配置多个JdbcTemplate内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
- spring boot使用sharding jdbc的配置方式
- 详解springboot采用多数据源对JdbcTemplate配置的方法
- springboot2.0.0配置多数据源出现jdbcUrl is required with driverClassName的错误
- SpringBoot多数据源配置详细教程(JdbcTemplate、mybatis)
- 详解Springboot之整合JDBCTemplate配置多数据源
- springboot+springJdbc+postgresql 实现多数据源的配置
- springboot实现以代码的方式配置sharding-jdbc水平分表
- SpringBoot3+ShardingJDBC5.5.0 读写分离配置的实现
- SpringBoot+MybatisPlus+jdbc连接池配置多数据源的实现
- Spring JDBC配置与使用的实现
相关文章
关于jdk9、jdk10、jdk11、jdk12、jdk13新特性说明
这篇文章主要介绍了关于jdk9、jdk10、jdk11、jdk12、jdk13新特性说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2023-05-05
解决MyBatis Mapper的XML文件SQL语句无法自动提示问题(亲测有效)
这篇文章主要给大家介绍了如何解决MyBatis Mapper的XML文件SQL语句无法自动提示的问题,文中有详细的原因分析,以及通过图文介绍的解决方案,需要的朋友可以参考下2023-10-10
SpringCloud2020整合Nacos-Bootstrap配置不生效的解决
这篇文章主要介绍了SpringCloud2020整合Nacos-Bootstrap配置不生效的解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2021-01-01
Springboot 接收POST、json、文本数据的方法 附示例
这篇文章主要介绍了Springboot 接收POST、json、文本数据实践,如果把 json 作为参数传递,我们可以使用 @requestbody 接收参数,将数据直接转换成对象,本文通过示例代码介绍的非常详细,需要的朋友可以参考下2023-10-10


最新评论