proxool是一个数据库连接池框架。
引用: Proxool is a Java connection pool. It's not rocket science but we've been doing it since 2001 and we've ironed out a lot of problems. Development has slowed down considerably over the past few years but we're still here, making releases and answering support questions.
很喜欢Features里的 Control 。
1、下载proxool,官网 http://proxool.sourceforge.net/
2、将两个jar包都导入到工程中,其中cglib在官网解释为: cglib is a powerful, high performance and quality Code Generation Library, It is used to extend JAVA classes and implements interfaces at runtime.当然也要导入数据库连接的驱动包,在此以mysql为例,导入mysql-connector-java-5.1.12-bin.jar。
3、在WEB-INF下建立proxool.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<proxool>
<!-- 数据库连接池别名 -->
<alias>DBPool</alias>
<!-- 连接字符串 -->
<driver-url>jdbc:mysql://localhost:3306/demotest</driver-url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<driver-properties>
<property name="user" value="root" />
<property name="password" value="root" />
</driver-properties>
<!-- 自动侦察各个连接状态的时间间隔(毫秒,侦察到空闲的连接马上回收,超时的销毁 ) -->
<house-keeping-sleep-time>60000</house-keeping-sleep-time>
<!-- 最大的等待请求数 -->
<proxool.simultaneous-build-throttle>20</proxool.simultaneous-build-throttle>
<!-- 最少保持的空闲连接数 -->
<prototype-count>5</prototype-count>
<!-- 允许最大连接数,超过了这个连接,再有请求时,就排在队列中 -->
<maximum-connection-count>10</maximum-connection-count>
<!-- 最小连接数 -->
<minimum-connection-count>1</minimum-connection-count>
<!-- 如果发现了空闲的数据库连接,house keeper将用这个语句来测试 -->
<house-keeping-test-sql>select CURRENT_DATE</house-keeping-test-sql>
</proxool>
4、修改WEB-INF/web.xml文件,添加以下语句:
<servlet>
<servlet-name>proxoolServletConfigurator</servlet-name>
<servlet-class>org.logicalcobwebs.proxool.configuration.ServletConfigurator</servlet-class>
<init-param>
<param-name>xmlFile</param-name>
<param-value>WEB-INF/proxool.xml</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet>
<servlet-name>Admin</servlet-name>
<servlet-class>org.logicalcobwebs.proxool.admin.servlet.AdminServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Admin</servlet-name>
<url-pattern>/admin</url-pattern>
</servlet-mapping>
5、通过DriverManager.getConnection("proxool.DBPool")即可获得连接
6、可以通过/admin来查看连接池状态,很详细,很强大
7、也可以通过以下方式查看状态:
SnapshotIF snapshot=ProxoolFacade.getSnapshot("DBPool",true);
//snapshot.getActiveConnectionCount(); 活动连接数
//snapshot.getAvailableConnectionCount(); 可用连接数
//snapshot.getMaximumConnectionCount(); 最大连接数