proxool java_Java应用中使用Proxool
Java應用中使用Proxool
本文題目沒有強調的是Java應用,不是Java Web應用,原因是從網上找有關Proxool的例子,全是一個摸樣,都是將講解Java Web中的應用,真沒勁,難道Proxool離開了web就不能用了?不信你可以google一把看看。
在閱讀了Proxool的官方指南后,我寫了個簡單測試,扔出來,希望能對大家有用。
環境:
JDK 1.5
proxool-0.9.1.zip
Oracle 10g
Proxool準確說還算不上一個連接池,因為里面沒有一個獲取DataSource對象的方法,也沒有一個獲取“**Pool”的途徑。因此要使用Proxool連接池,有兩條路可走,一是自己實現一個連接池的管理工具,二是通過開源的框架來使用,因為好多開源框架實現了池管理功能,比如Spring、Hibernate、iBatis等等。
Proxool的性能據說還不錯,常常與Spring、Hibernate等整合使用,倒很方便。
這里我不打算實現什么連接池管理工具,也不使用開源框架,而是僅僅利用Proxool提供的功能來做一個數據庫操作。
1、寫Proxool的配置
Proxool提供了一個接口,用來讀取xml格式或properties格式的配置信息,用來初始化Proxool所需的參數。這里我用xml配置,當然這個XML是網上找的,我懶得寫,僅僅改吧改吧能用。
timalias
jdbc:oracle:thin:@192.168.104.192:1521:tim
oracle.jdbc.driver.OracleDriver
100
10
90000
10
5
true
select sysdate from dual
2、寫測試類
import org.logicalcobwebs.proxool.configuration.JAXPConfigurator;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
/**
* Created by IntelliJ IDEA.
*
* @author leizhimin 2009-10-10 17:59:47
*/
public class TestProxool {
public static String dburl = "jdbc:oracle:thin:@192.168.104.192:1521:tim";
public static String user = "tim";
public static String password = "tim_8968888";
/**
* JDBC方式測試
*
* @throws Exception
*/
public static void test1() throws Exception {
String testsql = "select * from village t where lastid = 346";
//1:注冊驅動類
Class.forName("oracle.jdbc.driver.OracleDriver");
//2:創建數據庫連接
Connection conn = DriverManager.getConnection(dburl, user, password);
//3:創建執行SQL的對象
Statement stmt = conn.createStatement();
//4:執行SQL,并獲取返回結果
ResultSet rs = stmt.executeQuery(testsql);
//5:處理返回結果,此處打印查詢結果
while (rs.next()) {
System.out.print(rs.getLong("id") + "\t");
System.out.print(rs.getString("name") + "\t");
System.out.println();
}
//6:關閉數據庫連接
conn.close();
}
/**
* proxool方式測試
*
* @throws Exception
*/
public static void test2() throws Exception {
//Java應用中先要加載配置文件,否則誰知道你配置給誰用的
JAXPConfigurator.configure("F:\\_test\\synorg\\src\\proxool.xml", false);
String testsql = "select * from village t where lastid = 346";
//1:注冊驅動類,這次這個驅動已經不是Oracle的驅動了,是Proxool專用的驅動
Class.forName("org.logicalcobwebs.proxool.ProxoolDriver");
//2:創建數據庫連接,這個參數是一個字符串,是數據源的別名,在配置文件中配置的timalias,參數格式為:proxool.數據源的別名
Connection conn = DriverManager.getConnection("proxool.timalias");
//3:創建執行SQL的對象
Statement stmt = conn.createStatement();
//4:執行SQL,并獲取返回結果
ResultSet rs = stmt.executeQuery(testsql);
//5:處理返回結果,此處打印查詢結果
while (rs.next()) {
System.out.print(rs.getLong("id") + "\t");
System.out.print(rs.getString("name") + "\t");
System.out.println();
}
//6:關閉數據庫連接
conn.close();
}
public static void main(String[] args) throws Exception {
test2();
}
}
運行結果:
2009-10-14 18:13:05????- INFO????org.logicalcobwebs.proxool.ProxoolFacade???????? - Proxool 0.9.1 (23-Aug-2008 11:10)
2009-10-14 18:13:05????- WARN????org.logicalcobwebs.proxool.timalias???????? - Use of proxool.maximum-new-connections is deprecated. Use more descriptive proxool.simultaneous-build-throttle instead.
5411??張一村
5412??張二村
5413??張三村
5414??張四村
5415??南原村
5416??辛莊村
5417??凡村
5418??西陽村
5419??人馬村
5420??前關村
5421??后關村
5422??趙村
5423??水淆村
5424??溝東村
5425??陳村
5426??窯店村
5427??坡頭村
20588??大安頭
20589??澗里村
20590??人馬寨
20591??白草村
20592??窯院村
20593??寺下村
20594??反上村
33651??小安頭
33652??五花嶺
33653??東溝
33654??西溝
33655??南溝
33656??王村
33657??營前
33659??東陽
33661??太陽
33663??豐陽
33665??宜村
33667??窯頭
32225??石原村
32226??廟上村
32227??廟洼
38739??丁管營
38841??澗西
2009-10-14 18:13:06????- INFO????org.logicalcobwebs.proxool.timalias???????? - Shutting down 'timalias' pool immediately [Shutdown Hook]
2009-10-14 18:13:07????- INFO????org.logicalcobwebs.proxool.PrototyperController???????? - Stopping Prototyper thread
2009-10-14 18:13:07????- INFO????org.logicalcobwebs.proxool.HouseKeeperController???????? - Stopping HouseKeeper thread
Process finished with exit code 0
因為使用了log4j,這個結果里面輸出了一些日志信息。
3、說明
Proxool的配置文件路徑不能使用ClassPath,我查看過接口代碼,可以傳入一個XmlReader、或流來解決,這里寫成絕對路徑就湊合著能跑起來就行。
也支持Properties的配置,則個可以參考官方文檔,也很方便的。
有關配置參數,網上的文檔一堆一堆的重復,大家隨便找篇就行。
想看Web應用的,參看:
總結
以上是生活随笔為你收集整理的proxool java_Java应用中使用Proxool的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java socket ip_JAVA
- 下一篇: 谁是中国人最喜欢的手机品牌?看完这篇文章