zoukankan      html  css  js  c++  java
  • SpringBoot多数据源使用impala连接

    SpringBoot 2.0 + Impala 多数据源 JDBCTemplate SpringBoot 2.0 + Impala 多数据源 Named

    SpringBoot 配置多数据源(Hikari连接池)连接Impala
    注释:

    Impala:

    SpringBoot使用默认的Hikari连接池,连接Impala
    增加依赖
    <!--数据库连接池-->
    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jdbc</artifactId>
    </dependency>

    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-configuration-processor</artifactId>
    <optional>true</optional>
    </dependency>

    <!-- Impala start -->
    <!-- 有可能下载不到该Jar, 可以到该地址下载相应版本:https://www.cloudera.com/downloads/connectors/impala/jdbc/2-6-3.html -->
    <!-- https://mvnrepository.com/artifact/com.cloudera/ImpalaJDBC41 -->
    <dependency>
    <groupId>com.cloudera</groupId>
    <artifactId>ImpalaJDBC41</artifactId>
    <version>${impala.version}</version>
    </dependency>
    <!-- Impala end -->
    配置application.yml文件
    该配置文件为多环境配置,可以参考 SpringBoot多环境配置
    server:
    port: 7001
    spring:
    profiles:
    active: dev
    servlet:
    multipart:
    enabled: true
    mvc:
    view:
    prefix: /
    suffix: .html
    favicon:
    enabled: false
    logback:
    name: template

    ---
    # developer enviroment
    spring:
    profiles: dev
    datasource:
    impala:
    driver-class-name: com.cloudera.impala.jdbc41.Driver
    jdbc-url: jdbc:impala://xx:21050/default
    oracle:
    first:
    driver-class-name: oracle.jdbc.OracleDriver
    jdbc-url: jdbc:oracle:thin:@//xx:1521/db
    username: xx
    password: xx
    ---
    # developer enviroment
    spring:
    profiles: test
    datasource:
    impala:
    driver-class-name: com.cloudera.impala.jdbc41.Driver
    jdbc-url: jdbc:impala://xx:21050/default
    oracle:
    first:
    driver-class-name: oracle.jdbc.OracleDriver
    jdbc-url: jdbc:oracle:thin:@//xx:1521/db
    username: xx
    password: xx
    ---
    # developer enviroment
    spring:
    profiles: prod
    datasource:
    impala:
    driver-class-name: com.cloudera.impala.jdbc41.Driver
    jdbc-url: jdbc:impala://xx:21050/default
    oracle:
    first:
    driver-class-name: oracle.jdbc.OracleDriver
    jdbc-url: jdbc:oracle:thin:@//xx:1521/db
    username: xx
    password: xx
    多数据源连接配置类
    项目目录结构
    src
    ├───main
    │ ├───java
    │ │ └───com
    │ │ └───template
    │ │ ├───common # 公共部分
    │ │ ├───config # 配置、数据源
    │ │ ├───domain # DO、DTO、VO
    │ │ ├───repository # 数据库访问层
    │ │ ├───service # 逻辑层
    │ │ │ └───impl # 逻辑具体实现
    │ │ ├───util # 工具类
    │ │ └───web # api 接口
    │ └───resources
    │ ├───static # 静态资源文件
    │ │ └───js # 页面依赖的javascript 文件
    │ └───templates # 页面模板文件
    └───test
    └───java
    └───com
    └───template
    ├───config
    └───repository
    多数据源配置类
    package com.template.config;

    import javax.sql.DataSource;

    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 org.springframework.jdbc.core.JdbcTemplate;
    import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;

    import com.zaxxer.hikari.HikariDataSource;

    @Configuration
    public class HikariDataSourceConfig {

    @Primary
    @Bean(name = "impalaDataSource")
    @Qualifier(value = "impalaDataSource")
    @ConfigurationProperties(prefix = "spring.datasource.impala")
    public DataSource primaryDataSource() {
    return DataSourceBuilder.create().type(HikariDataSource.class).build();
    }

    @Bean(name = "jdbcTemplateImpala")
    public JdbcTemplate jdbcTemplateImpala(@Qualifier("impalaDataSource") DataSource dataSource) {
    return new JdbcTemplate(dataSource);
    }

    @Bean(name = "namedJdbcTemplateImpala")
    public NamedParameterJdbcTemplate namedJdbcTemplateImpala(
    @Qualifier("impalaDataSource") DataSource dataSource) {
    return new NamedParameterJdbcTemplate(dataSource);
    }

    @Bean(name = "secondOracleDataSource")
    @Qualifier(value = "secondOracleDataSource")
    @ConfigurationProperties(prefix = "spring.datasource.oracle.first")
    public DataSource firstOracleDataSource() {
    return DataSourceBuilder.create().type(HikariDataSource.class).build();
    }

    @Bean(name = "jdbcTemplateOracle1")
    public JdbcTemplate jdbcTemplateOracle1(
    @Qualifier("secondOracleDataSource") DataSource dataSource) {
    return new JdbcTemplate(dataSource);
    }

    }
    测试类
    package com.template.config;


    import org.junit.Test;
    import org.junit.runner.RunWith;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.boot.test.context.SpringBootTest;
    import org.springframework.jdbc.core.JdbcTemplate;
    import org.springframework.test.context.junit4.SpringRunner;

    import lombok.extern.slf4j.Slf4j;

    @Slf4j
    @SpringBootTest
    @RunWith(SpringRunner.class)
    public class HikariDataSourceConfigTest {

    @Autowired
    private JdbcTemplate jdbcTemplateImpala;

    @Test
    public void testImpalaJdbcTemplate() {
    log.info("impala jdbctemplate connection start:");
    String sql = "select count(*) from table";
    Integer count = jdbcTemplateImpala.queryForObject(sql, Integer.class);
    log.info("impalaJdbcTemplate query result : " + count);

    }

    }
    ————————————————
    版权声明:本文为CSDN博主「焦虑的肉松面包」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/weixin_44131142/article/details/103696481

  • 相关阅读:
    css考核点整理(十二)-能描述下你在项目中都用到了哪些符合逐渐增强和优雅降级的理念的技巧吗
    css考核点整理(十一)-响应式开发经验,响应式页面的三种核心技术是什么
    css考核点整理(十)-响应式开发经验,响应式页面的三种核心技术是什么
    css考核点整理(九)-有几种文字替换方式,之间的优缺点
    css考核点整理(八)-在什么情况下通过img引入图片,什么情况用背景图引入?背景属性有哪些
    img标签src路径为空就会出现边框,css怎么去掉
    如何避开JavaScript浮点数计算精度问题(如0.1+0.2!==0.3)
    Table中采用JQuery slideToggle效果的问题
    svg转字体icon
    JS取date的前一天时间
  • 原文地址:https://www.cnblogs.com/chong-zuo3322/p/15099616.html
Copyright © 2011-2022 走看看