欢迎来到代码驿站!

JAVA代码

当前位置:首页 > 软件编程 > JAVA代码

Jdbctemplate多数据源配置方法详解

时间:2020-11-25 12:01:27|栏目:JAVA代码|点击:

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关于jar包的知识详解

栏    目:JAVA代码

下一篇:两种JAVA实现短网址服务算法

本文标题:Jdbctemplate多数据源配置方法详解

本文地址:http://www.codeinn.net/misctech/26092.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有