文档章节

使用jdbc连接池(c3p0)连接impala

balajinima
 balajinima
发布于 2017/03/22 14:17
字数 202
阅读 397
收藏 0

使用jdbc连接池(c3p0)连接impala

依赖包

  1. c3p0 依赖jar文件 groupId: com.mchange, artifactId: c3p0, version: 0.9.5.2

  2. impala jdbc连接驱动下载地址
    https://www.cloudera.com/downloads/connectors/impala/jdbc/2-5-36.html

测试代码


import java.beans.PropertyVetoException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;

import com.mchange.v2.c3p0.ComboPooledDataSource;

public class C3p0Test {
	public static void main(String[] args) throws PropertyVetoException, SQLException {
		C3p0Test c3p0Test = new C3p0Test();
		c3p0Test.test();
	}

	public void test() throws PropertyVetoException, SQLException {
		ExecutorService pool = new ThreadPoolExecutor(5, 15, 100, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<Runnable>(10));
		ComboPooledDataSource cpds = new ComboPooledDataSource();
		cpds.setDriverClass("com.cloudera.impala.jdbc4.Driver");
		cpds.setJdbcUrl("jdbc:impala://10.168.250.36:21050/report");
		cpds.setMinPoolSize(5);
		cpds.setAcquireIncrement(5);
		cpds.setMaxPoolSize(20);
		for (int i = 0; i < 100; i++) {
			Connection conn = cpds.getConnection();
			pool.execute(new Worker(conn));
		}
		pool.shutdown();

		while (!pool.isTerminated()) {
			try {
				Thread.sleep(100);
			} catch (InterruptedException e) {

			}
		}
		cpds.close();
	}

	class Worker implements Runnable {

		Connection conn;

		public Worker(Connection conn) {
			this.conn = conn;
		}

		public void run() {
			try {
				Statement stmt = conn.createStatement();
				ResultSet rs = stmt.executeQuery("select * from dict_area limit 1 ");
				while (rs.next()) {
					System.out.println(Thread.currentThread().getName() + ":" + rs.getString(4));
				}
				Thread.sleep(1000);
				rs.close();
				stmt.close();
				conn.close();
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
	}
}

© 著作权归作者所有

balajinima
粉丝 4
博文 12
码字总数 22112
作品 0
西城
高级程序员
私信 提问
Java开发基础(三)——JDBC连接池

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 https://blog.csdn.net/simonforfuture/article/details/90451339 文章目录 前言 数据库连接...

simon曦
05/22
0
0
hibernate、c3p0、jdbc理解

大家好,请教大家概念问题,hibernate、c3p0、jdbc这三者是什么关系, 我的理解是:hibernate 是对jdbc的封装,可以面向对象(实体类)实现数据操作,jdbc就是java api提供的连接操作数据库的...

樱木花道VS康
2017/06/30
260
2
C3P0 0.9.2 发布,Java 数据库连接池

著名的 Java 数据库连接池 c3p0 发布了 0.9.2 正式版本,下载地址: c3p0-0.9.2 (二进制) c3p0-0.9.2 (源码) C3P0是一个开放源代码的JDBC连接池,Hibernate的发行包中默认使用此连接池。...

oschina
2013/02/09
2.9K
15
Hibernate c3p0 数据库连接池

From :http://www.codeweblog.com/hibernate-using-c3p0-connection-pooling/ c3p0是开源JDBC连接池,Hibernate的发布版也有此功能。这篇文章描述怎样使用Hibernate来配置从c3p0。C3p0连接池...

boonya
2014/07/14
149
0
c3p0、dbcp、tomcat jdbc pool 连接池区别

查看资料,得知dbcp和c3p0都是单线程的,在高并发的环境下性能会非常低下, 决定换用tomcat自带的jdbc-pool,关于jdbc-pool的项目介绍。 区别参考链接:http://www.open-open.com/lib/view/o...

张嘴吃药
2017/10/30
206
0

没有更多内容

加载失败,请刷新页面

加载更多

ES5

什么是ES5:比普通js运行要求更加严格的模式 为什么:js语言本身有很多广受诟病的缺陷 如何:在当前作用域的顶部添加:"use strict" 要求: 1、禁止给未声明的变量赋值 2、静默失败升级为错误...

wytao1995
53分钟前
7
0
c++ 内联函数调用快的原因

见图片分析

天王盖地虎626
今天
4
0
微服务之间调用控制器注解类型的差异

今天在一个业务服务通过Feign调用文件服务上传文件时遇到了几个问题: 1. 提示http请求头过大的问题; 此时需要修改bootstrap.yml,加入 server: max-http-header-size: 10000000 用以放大...

不再熬夜
今天
7
0
用 4G 工作是什么体验

七月开始,因为工作原因,在公司附近租了个住处,方便工作。离公司近了,感觉就是不一样,之前每天 5:30 就要起床赶地铁,现在可以睡到自然醒,一看才 7 点,悠闲的起床洗漱,踱步到公司,都...

zzxworld
今天
9
0
sonar报错volatile

问题发生 原先代码如下: //认证授权码private static volatile String AUTHORIZATION_CODE = "init"; git push 之后,sonar认为这是个bug检测报告截图如下: 分析排查 解释说明: Markin...

开源小菜鸟2333
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部