在資料庫應用程式中,資料庫連線的取得是一個耗費時間的動作,為了避免花費時間在連線的取得與關閉上,我們會將連線資源放置在一個池中,有需要連線時就從池中取得,不需要連線時就將之放回池中,以求重複利用連線,連線池也擔任連線數量、連線時間的控制等等動作。
Proxool 是一個開放原始碼的連線池管理套件,在使用與設定上都十分的方便,撰寫此文的同時,Proxool 最新的版本是0.8.3,您可以在以下的網址下載:
http://proxool.sourceforge.net/index.html
網站上的User Guide提供相當簡明的入門文件,您可以直接先從這些文件開始下手,而這篇文件則先提供您一個快速入門的範例,讓您知道如何透過Proxool取得資料庫連線,這邊所使用的是MySQL資料庫。
為了要使用Java來進行連線,首先您所需要的是當然是JDBC驅動程式,如果您不知道如何使用JDBC,請先參考這邊有關於JDBC的介紹:
http://www.caterpillar.onlyfun.net/phpBB2/viewforum.php?f=21
接下來請在Proxool網址上取得proxool-0.8.3.zip這個檔案,解開後,將lib下的proxool-0.8.3.jar放至
您的 CLASSPATH可以存取的位置,如果是Web應用程式的話,您可以放置在WEB/lib目錄下,如果是桌面應用程式,您可以將之加入環境變數
CLASSPATH中。
要使用Proxool,首先是載入Proxool驅動程式:
Class.forName("org.logicalcobwebs.proxool.ProxoolDriver");
接著我們在透過DriverManager取得連線時,必須告知連接池別名、JDBC驅動程式、JDBC URL等相關訊息:
Connection conn =
DriverManager.getConnection("proxool.example:com.mysql.jdbc.Driver:jdbc:mysql:,
"caterpillar",
"123456");
其中example是連接池的別名(alias),是一個用來參考至連接池的名稱,取得連接,接下來就按照JDBC的操作來使用即可,在不使用連線的時候,可以關閉它將連線放回連接池。
下面這個程式是個簡單測試Proxool連線取得的範例:
import java.sql.*;
public class DBTest {
static {
try {
Class.forName("org.logicalcobwebs.proxool.ProxoolDriver");
}
catch(ClassNotFoundException e) {
System.out.println("找不到驅動程式類別");
e.printStackTrace();
}
}
publicstatic void main(String[] args) {
try {
Connection conn = DriverManager.getConnection(
"proxool.example:com.mysql.jdbc.Driver:jdbc:mysql:,
"caterpillar", "123456");
if(!conn.isClosed())
System.out.println("資料庫連線測試成功!");
conn.close();
}
catch(SQLException e) {
e.printStackTrace();
}
}
}