springboot Hive数据连接池

pom.xml依赖文件,项目负载的可能需要解决依赖冲突,idea可以安装dependency analyzer

        
        
            com.alibaba
            druid
            1.1.12
        
        
        
            org.apache.hive
            hive-jdbc
            1.1.0
        
        
            org.apache.hive
            hive-service
            1.1.0
        

配置文件设置参数

hive:
  url: jdbc:hive2://10.1.24.38:10000/ods #hiveserver2的url
  #url: jdbc:hive2://192.168.1.10:10000/ods #hiveserver2的url
  driver-class-name: org.apache.hive.jdbc.HiveDriver
  type: com.alibaba.druid.pool.DruidDataSource
  user: root #用户名
  password: root #密码
  #password: 123456 #密码
  initialSize: 1
  minIdle: 3
  maxActive: 20
  maxWait: 6000
  timeBetweenEvictionRunsMillis: 60000
  minEvictableIdleTimeMillis: 30000
  validationQuery: select 1
  testWhileIdle: true
  testOnBorrow: false
  testOnReturn: false
  poolPreparedStatements: true
  maxPoolPreparedStatementPerConnectionSize: 20
  connectionErrorRetryAttempts: 0
  breakAfterAcquireFailure: true

配置连接池的参数

/**
 * 
 *
 * @author CJJ
 * @version 1.0
 * @createDate 2020/02/10 16:07
 * @see com.gzkj.platform.config.datasource
 */

import com.alibaba.druid.pool.DruidDataSource;
import lombok.Data;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import javax.sql.DataSource;

@Configuration
@ConfigurationProperties(prefix = "hive")
@Data
public class HiveDruidConfig {

    private String url;
    private String user;
    private String password;
    private String driverClassName;
    private int initialSize;
    private int minIdle;
    private int maxActive;
    private int maxWait;
    private int timeBetweenEvictionRunsMillis;
    private int minEvictableIdleTimeMillis;
    private String validationQuery;
    private boolean testWhileIdle;
    private boolean testOnBorrow;
    private boolean testOnReturn;
    private boolean poolPreparedStatements;
    private int maxPoolPreparedStatementPerConnectionSize;
    private int connectionErrorRetryAttempts;
    private boolean breakAfterAcquireFailure;

    public DataSource dataSource() {
        DruidDataSource datasource = new DruidDataSource();
        datasource.setUrl(url);
        datasource.setUsername(user);
        datasource.setPassword(password);
        datasource.setDriverClassName(driverClassName);
        datasource.setInitialSize(initialSize);
        datasource.setMinIdle(minIdle);
        datasource.setMaxActive(maxActive);
        datasource.setMaxWait(maxWait);
        datasource.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis);
        datasource.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis);
        datasource.setValidationQuery(validationQuery);
        datasource.setTestWhileIdle(testWhileIdle);
        datasource.setTestOnBorrow(testOnBorrow);
        datasource.setTestOnReturn(testOnReturn);
        datasource.setPoolPreparedStatements(poolPreparedStatements);
        datasource.setMaxPoolPreparedStatementPerConnectionSize(maxPoolPreparedStatementPerConnectionSize);
        datasource.setConnectionErrorRetryAttempts(connectionErrorRetryAttempts);
        datasource.setBreakAfterAcquireFailure(breakAfterAcquireFailure);
        return datasource;
    }

}

然后

    @Autowired
    HiveDruidConfig hiveDruidConfig;

    //方法中
    Connection conn=hiveDruidConfig.dataSource().getConnection();

静态方法中使用

    private static DataSource hiveDataSource;

    @PostConstruct
    public void init() {
        hiveDataSource = hiveDruidConfig.dataSource();
    }

    @Autowired
    HiveDruidConfig hiveDruidConfig;

    //方法中
    Connection conn=hiveDataSource .getConnection();

 

你可能感兴趣的:(springboot Hive数据连接池)