博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DBCP连接池
阅读量:6188 次
发布时间:2019-06-21

本文共 2397 字,大约阅读时间需要 7 分钟。

hot3.png

@Test public void testPool() throws Exception{  BasicDataSource ds  = new BasicDataSource();  //设置driver  ds.setDriverClassName("com.mysql.jdbc.Driver");    //设置url  ds.setUrl("jdbc:mysql:///db909?characterEncoding=utf8");  ds.setUsername("root");  ds.setPassword("123456");  ds.setInitialSize(2);//设置在开始时创建几个链接  ds.setMaxActive(5);//设置最多有几个链接  //下面两个很少用  ds.setDefaultAutoCommit(true);//设置所有连接是否自动提交(默认)  ds.setMaxIdle(3000);//设置每个连接最大的空闲时间  Connection conn  = ds.getConnection();  Connection conn2  = ds.getConnection();  Connection conn3  = ds.getConnection();  Connection conn4  = ds.getConnection();  Connection conn5  = ds.getConnection();  System.out.println("c1"+conn.hashCode()+","+conn.getClass());  System.out.println("c2"+conn2.hashCode());  System.out.println("c3"+conn3.hashCode());  System.out.println("c4"+conn4.hashCode());  System.out.println("c5"+conn5.hashCode());  conn.close();  Connection conn6  = ds.getConnection();  System.out.println("c6"+conn6.hashCode()); }

输出

c1956723359,class org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper

c21439429624
c31090407113
c41994388340
c51760068004
c6956723359

/*  * 通过配置文件创建连接  */ @Test public void testPool2() throws Exception {  Properties p = new Properties();  p.load(DbcpPool.class.getResourceAsStream("jdbc.properties"));    DataSource ds = new BasicDataSourceFactory().createDataSource(p);  Connection c1 = ds.getConnection();  Connection c2 = ds.getConnection();  Connection c3 = ds.getConnection();  System.out.println(c1.hashCode()+","+c1.getClass());  System.out.println(c2.hashCode()+","+c2.getClass());  System.out.println(c3.hashCode()+","+c3.getClass());  c3.close();  Connection c4 = ds.getConnection();  System.out.println(c4.hashCode()+","+c4.getClass()); }

#以下所有属性,都来自于BasicDataSource的setXxxx方法

driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql:///db909
username=root
password=123456
maxActive=3

输出:

696865876,class org.apache.tomcat.dbcp.dbcp.PoolingDataSource$PoolGuardConnectionWrapper

1996450841,class org.apache.tomcat.dbcp.dbcp.PoolingDataSource$PoolGuardConnectionWrapper
2064783959,class org.apache.tomcat.dbcp.dbcp.PoolingDataSource$PoolGuardConnectionWrapper
2064783959,class org.apache.tomcat.dbcp.dbcp.PoolingDataSource$PoolGuardConnectionWrapper

 

在一个项目中,就只能拥有一个DataSource的实例。在这个DataSource3中有多个Connection

声明一个工厂类,创建维护唯一的一个DataSource

 

转载于:https://my.oschina.net/duanvincent/blog/386354

你可能感兴趣的文章
【团队博客】暑期软件开发学习感悟
查看>>
fitnesse - 用例创建编辑、管理、执行和日志
查看>>
[转载] 谈面试
查看>>
The difference between Severity and Priority
查看>>
js里实现给数字加三位一逗号间隔的两种方法
查看>>
DOS命令大全(经典收藏)
查看>>
Android数字选择器-NumberPicker
查看>>
zoj 3547 The Boss on Mars 第36届ACM大连预选赛I题
查看>>
javascript基础
查看>>
小学生四则运算应用软件(二)
查看>>
jQuery事件 JS选择器及相关
查看>>
golang 简单web服务
查看>>
shell(2):传入参数
查看>>
cobbler安装配置.基本全了多看help和docs
查看>>
C# 服务程序 - 调试服务
查看>>
LeetCode 627. Swap Salary
查看>>
CentOS 6.7安装Spark 1.5.2
查看>>
POJ 2449 Remmarguts' Date ——A*算法求k短路
查看>>
渗透测试之正则过滤
查看>>
PL/SQL — 函数
查看>>