SpringBoot 配置多个JdbcTemplate

您所在的位置:网站首页 猫咪早上舔人怎么办 SpringBoot 配置多个JdbcTemplate

SpringBoot 配置多个JdbcTemplate

2023-07-17 23:42| 来源: 网络整理| 查看: 265

SprinBoot 系列文章:

Spring Boot入门之Hello Spring BootSpringBoot 配置多个JdbcTemplateSpringBoot 整合MybatisCAS统一登录认证(3): CAS 客户端接入实践SpringBoot 整合Mail实现邮件发送数据库连接池优化配置(druid,dbcp,c3p0)SpringBoot+SpringSecurity+mysql实现认证与授

SpringBoot+Spring Security基于内存用户认证 SpringBoot+WebSocket在线聊天室、消息推送  SpringBoot+SpringData JPA操作Mysql数据库  SpringBoot热部署值devtools配置 Spring Boot 资源文件属性配置  Spring Boot Server等内容的配置 Spring Boot + FreeMarker模板  SpringBoot+thymeleaf模板 SpringBoot +JDBC连接Mysql数据库 Zipkin分布式任务追踪  SpringBoot应用部署到外置Tomcat  Spring Boot + Swagger2 自动生成api接口文档  

SpringBoot整合Shiro安全框架          SpringBoot+CAS Client 实现单点登录SpringBoot 整合MyBatis-Plus  SpringBoot + validation 接口参数校验Springboot+Redis 实现API接口防刷限流           ShardingSphere-ShardingJdbc 数据分片(分库、分表)ShardingSphere-ShardingJdbc 读写分离ShardingSphere-ShardingJdbc 数据脱敏

            springboot+sms 集成腾讯云短信平台SpringBoot+RabbitMQ 实现消息队列快速从零搭建一个SpringBoot Web项目从零快速搭建一个SpringBoot Web项目             SpringBoot+ElasticSearch 实现全文检索访问ElasticSearch的几种方式SpringBoot + Activiti 工作流引擎(一、基本概念与环境搭建)SpringBoot + Activiti 工作流引擎(二、流程&任务操作)SpringBoot 定时任务 实现方式             SpringBoot + EhCache实现本地缓存SpringBoot + Redis 实现分布式缓存 

                            SpringBoot 配置多个JdbcTemplate 前言

        开发中使用多数据源配置是一个非常常见的需求。Spring和SpringBoot中,对此都有相应的解决方案。

        多数据源的首选分布式数据库中间件MyCat或者Sharing-Jdbc去解决相关问题。使用MyCat,然后分表策略使用sharding-by-intfile。

         本文我们只讨论如何在SpringBoot中简单配置多个JdbcTemplate。

一、创建一个SpringBoot 项目,并引入如下依赖 org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-jdbc mysql mysql-connector-java com.alibaba druid-spring-boot-starter org.springframework.boot spring-boot-starter-test test 二、在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用户数据源的切换。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3