在数据库应用程序中,数据库连接的取得是一个耗费时间的动作,为了避免花费时间在连接的取得与关闭上,我们会将连接资源放置在一个池中,需要连接时就从池中取得,不需要连接时就将之放回池中,以求重复利用连接,连接池也担任连接数量、连接时间的控制等等动作。
Proxool 是一个开放源码的连接池,在使用与设置上都十分的方便,Proxool 最新的版本是0.8.3,您可以在以下的网址下载: http://proxool.sourceforge.net/index.html
网站上的User Guide提供相当简单的入门文件,您可以直接先从这些文件开始下手,而下面这个实例提供您一个快速入门的范例,让您知道如何通过Proxool取得数据库连接,这里所使用的是MySQL数据库。
为了要使用Java来进行连接,首先您所需要的是当然是JDBC驱动程序,首先,要从 这里 下载驱动程序的合适的 JAR 文件。下载名为mysql-connector-java-5.0.0-beta.zip 的文件。接下来,将文件解压缩至一个临时目录。最后,将包含驱动程序的文件从解压缩的目录结构复制到您的 CLASSPATH可以存取的位置, 在我下载的驱动程序版本中,文件的名称是mysql-connector-java-5.0.0-beta-bin.jar
如果是桌面应用程式,您可以将之加入环境变量 CLASSPATH中。如我的BAT文件: email.bat
|
|
|
set CLASSPATH=c:\test\jar\proxool-0.8.3.jar;c:\test\jar\mysql-connector-java-5.0.0-beta-bin.jar;%CLASSPATH%
你能用多种方法配置Proxool,这里我们使用属性文件:Proxool.properties,内容如下
jdbc-0.proxool.alias=mysql
jdbc-0.proxool.driver-class=com.mysql.jdbc.Driver
jdbc-0.proxool.driver-url=jdbc:mysql://localhost:3306/email?user=root;password=
jdbc-0.proxool.maximum-connection-count=20
jdbc-0.proxool.prototype-count=4
jdbc-0.proxool.house-keeping-test-sql=select CURRENT_DATE
jdbc-0.proxool.verbose=true
jdbc-0.proxool.statistics=10s,1m,1d
jdbc-0.proxool.statistics-log-level=ERROR
其中mysql是连接池的別名(alias),是一个用来参考至连接池的名称,取得连接,接下來就按照JDBC的操作使用即可,在不使用连接的时候,可以关闭它将连接放回连接池。
下面这个程序是个简单测试Proxool连接取得的范例:
import java.sql.*;
import org.logicalcobwebs.proxool.configuration.PropertyConfigurator;
import org.logicalcobwebs.proxool.ProxoolException;
public class DBTest {
public static void main(String[] args) {
Connection conn=null;
try {
PropertyConfigurator.configure("Proxool.properties");
conn = DriverManager.getConnection("proxool.mysql");
if(conn!=null)
System.out.println("数据连接测试成功!");
Statement Stmt=conn.createStatement();
ResultSet Rst=null;
Rst=Stmt.executeQuery("select * from email");
while(Rst.next())
System.out.println(Rst.getString("email_user"));
}catch(SQLException e) {
System.out.println("error"+e);
}catch(ProxoolException e1){
System.out.println(e1);
} finally{
try{
if (conn != null)
conn.close();
}catch(SQLException e2){
System.out.println(e2);
}
}
}
}
程序运行过程如下:
C:\test>email.bat
C:\test>set CLASSPATH=c:\test\jar\proxool-0.8.3.jar;c:\test\jar\mysql-connector-
java-5.0.0-beta-bin.jar;.;c:\jdk1.5\lib
C:\test>javac DBTest.java
C:\test>java DBTest
2006-1-4 13:35:03 org.logicalcobwebs.proxool.ProxoolFacade registerConnectionPoo
l
信息: Proxool 0.8.3 (14-Dec-2003 16:06)
数据连接测试成功!
zz3zcwb@sina.com
webcn@staff.sina.com.cn
kf@sina.net
baoliao@vip.sina.com
miaoxinyu@staff.sina.com.cn
weidong@staff.sina.com.cn
fatwen@vip.sina.com.cn
zhuangao@vip.sina.com
young@staff.sina.com.cn
ucservice@51uc.com
webmaster@csdn.net
adv@csdn.net
tangqi@csdn.net
chinajsp@hotmail.com
C:\test>