Jdbctemplate多数据源配置方法详解

 更新时间:2020年06月30日 09:04:44   作者:higsan  
这篇文章主要介绍了Jdbctemplate多数据源配置方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

1.数据源配置

spring:
  #  jdbctemplate 连接多数据源配置
 db1:
  datasource:
   jdbcurl: jdbc:mysql://127.0.0.1:3306/cloud-main1?useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true
   username: root
   password: 123456
   driver-class-name: com.mysql.jdbc.Driver
   type: com.alibaba.druid.pool.DruidDataSource
 db2:
  datasource:
   jdbcurl: jdbc:mysql://127.0.0.1:3306/cloud-main2?useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true
   username: root
   password: 123456
   driver-class-name: com.mysql.jdbc.Driver
   type: com.alibaba.druid.pool.DruidDataSource

2.启动类

@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)

3.config 配置datasource

package com.example.demo.jdbctemplate.config;
 
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.context.annotation.Primary;
 
import javax.sql.DataSource;
 
@Configuration
public class DataSourceConfig {
 
  @Primary //(主数据源配置)
  @Bean(name = "db1")
  @Qualifier("db1")
  @ConfigurationProperties(prefix = "spring.db1.datasource")
  public DataSource mysqlDataSource(){
 
    return DataSourceBuilder.create().build();
  }
 
  //
  @Bean(name = "db2")
  @Qualifier("db2")
  @ConfigurationProperties(prefix = "spring.db2.datasource")
  public DataSource sqlServerDataSource(){
 
    return DataSourceBuilder.create().build();
  }
}

构造 db1JdbcTemplate、  db2JdbcTemplate

package com.example.demo.jdbctemplate.config;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Repository;
 
import javax.sql.DataSource;
 
@Repository
public class DBLoader {
  @Bean(name = "db1JdbcTemplate")
  public JdbcTemplate primaryJdbcTemplate(@Qualifier("db1") DataSource dataSource) {
    return new JdbcTemplate(dataSource);
  }
 
  @Bean(name = "db2JdbcTemplate")
  public JdbcTemplate secondaryJdbcTemplate(@Qualifier("db2") DataSource dataSource) {
    return new JdbcTemplate(dataSource);
  }
 
}

4.调用

@Service
public class DBTools {
  @Autowired
  @Qualifier( "db1JdbcTemplate")
  private JdbcTemplate jdbcTemplate1;
  @Autowired
  @Qualifier("db2JdbcTemplate")
  private JdbcTemplate jdbcTemplate2 ;
 
  JdbcTemplate jdbcTemplate;
 
  public JdbcTemplate getDB(String db ) {
    if("db1".equals(db)){
      return jdbcTemplate1;
    }else if ("db2".equals(db)){
      return jdbcTemplate2;
    }else {
      return null ;
    }
 
  }
 
  /***
   * 查询
   * @param sql
   * @return 返回list
   */
  public  List<Map<String, Object>> queryForList(String db,String sql ) {
    List<Map<String, Object>> queryForList = getDB(db).queryForList(sql );
    return queryForList;
  }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Java有效处理异常的三个原则

    Java有效处理异常的三个原则

    Java中异常提供了一种识别及响应错误情况的一致性机制,有效地异常处理能使程序更加健壮、易于调试。那么这篇文章总结了Java有效处理异常的三个原则,有需要的朋友们可以参考借鉴。
    2016-09-09
  • 浅谈maven单元测试设置代理

    浅谈maven单元测试设置代理

    下面小编就为大家带来一篇浅谈maven单元测试设置代理。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • Java编程中快速排序算法的实现及相关算法优化

    Java编程中快速排序算法的实现及相关算法优化

    这篇文章主要介绍了Java编程中快速排序算法的实现及相关算法优化,快速排序算法的最差时间复杂度为(n^2),最优时间复杂度为(n\log n),存在优化的空间,需要的朋友可以参考下
    2016-05-05
  • Java读取properties文件内容的几种方式详解

    Java读取properties文件内容的几种方式详解

    这篇文章主要介绍了Java读取properties文件内容的几种方式详解,读取properties配置文件在实际的开发中使用的很多,本文来介绍常用的几种实现方式,需要的朋友可以参考下
    2023-11-11
  • SpringMVC+EasyUI实现页面左侧导航菜单功能

    SpringMVC+EasyUI实现页面左侧导航菜单功能

    这篇文章主要介绍了SpringMVC+EasyUI实现页面左侧导航菜单功能,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-09-09
  • Java中的 HTTP 协议原理详解

    Java中的 HTTP 协议原理详解

    这篇文章主要介绍了Java中的 HTTP 协议原理详解,HTTP超文本传输协议,下文简称 HTTP,它的作用是用于实现服务器端和客户端的数据传输的
    2022-07-07
  • Spring Boot FeignClient 如何捕获业务异常信息

    Spring Boot FeignClient 如何捕获业务异常信息

    这篇文章主要介绍了Spring Boot FeignClient 如何捕获业务异常信息的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • Spring中Bean的生命周期使用解析

    Spring中Bean的生命周期使用解析

    这篇文章主要介绍了Spring中Bean的生命周期使用解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • Jmeter压力测试简单教程(包括服务器状态监控)

    Jmeter压力测试简单教程(包括服务器状态监控)

    Jmeter是一个非常好用的压力测试工具。Jmeter用来做轻量级的压力测试,非常合适,本文详细的介绍了Jmeter的使用,感性的可以了解一下
    2021-11-11
  • SpringBoot访问windows共享文件的方法

    SpringBoot访问windows共享文件的方法

    这篇文章主要介绍了SpringBoot访问windows共享文件,项目使用minio存储且不在同一台服务器上,为了优化速度决定使用windows共享功能进行文件传输,本文结合实例代码给大家介绍的非常详细,需要的朋友可以参考下
    2023-02-02

最新评论