在應(yīng)用程序中配Proxool連接池
????在數(shù)據(jù)庫(kù)應(yīng)用程序中,數(shù)據(jù)庫(kù)連接的取得是一個(gè)耗費(fèi)時(shí)間的動(dòng)作,為了避免花費(fèi)時(shí)間在連接的取得與關(guān)閉上,我們會(huì)將連接資源放置在一個(gè)池中,需要連接時(shí)就從池中取得,不需要連接時(shí)就將之放回池中,以求重復(fù)利用連接,連接池也擔(dān)任連接數(shù)量、連接時(shí)間的控制等等動(dòng)作。 Proxool 是一個(gè)開(kāi)放源碼的連接池,在使用與設(shè)置上都十分的方便,Proxool 最新的版本是0.8.3,您可以在以下的網(wǎng)址下載: 網(wǎng)站上的User Guide提供相當(dāng)簡(jiǎn)單的入門(mén)文件,您可以直接先從這些文件開(kāi)始下手,而下面這個(gè)實(shí)例提供您一個(gè)快速入門(mén)的范例,讓您知道如何通過(guò)Proxool取得數(shù)據(jù)庫(kù)連接,這里所使用的是MySQL數(shù)據(jù)庫(kù)。 為了要使用Java來(lái)進(jìn)行連接,首先您所需要的是當(dāng)然是JDBC驅(qū)動(dòng)程序,首先,要從 這里 下載驅(qū)動(dòng)程序的合適的 JAR 文件。下載名為mysql-connector-java-5.0.0-beta.zip 的文件。接下來(lái),將文件解壓縮至一個(gè)臨時(shí)目錄。最后,將包含驅(qū)動(dòng)程序的文件從解壓縮的目錄結(jié)構(gòu)復(fù)制到您的 CLASSPATH可以存取的位置, 在我下載的驅(qū)動(dòng)程序版本中,文件的名稱(chēng)是mysql-connector-java-5.0.0-beta-bin.jar 如果是桌面應(yīng)用程式,您可以將之加入環(huán)境變量 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,內(nèi)容如下
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),是一個(gè)用來(lái)參考至連接池的名稱(chēng),取得連接,接下來(lái)就按照J(rèn)DBC的操作使用即可,在不使用連接的時(shí)候,可以關(guān)閉它將連接放回連接池。
下面這個(gè)程序是個(gè)簡(jiǎn)單測(cè)試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("數(shù)據(jù)連接測(cè)試成功!"); 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); } } } }程序運(yùn)行過(guò)程如下:
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)
數(shù)據(jù)連接測(cè)試成功!
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>
posted on 2006-04-26 15:28 都市淘沙者 閱讀(1120) 評(píng)論(1) 編輯 收藏 所屬分類(lèi): Oracle/Mysql/Postgres/