在网上找到的proxool 入门实例 都是在web项目中使用的
下面这个例子是单纯的java项目中运用proxool。
总结一下,其实也很简单就是将 proxool.xml 加载进来 的方法的不一样
需要的jar文件有:
classes12-10.0.2.jar
commons-logging-1.0.4.jar
proxool-0.9.1.jar
proxool-cglib-0.9.1.jar
相关资源下载:http://download.csdn.net/detail/xswd169/6366947
代码如下:
TestProxool
package com.leader.proxool;
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("E:\\EclipseNew\\eclipse\\workSpace\\Proxool\\proxool.xml", false);
String testsql = "select * from dest_poi";
// 1:注册驱动类,这次这个驱动已经不是Oracle的驱动了,是Proxool专用的驱动
Class.forName("org.logicalcobwebs.proxool.ProxoolDriver");
// 2:创建数据库连接,这个参数是一个字符串,是数据源的别名,在配置文件中配置的timalias,参数格式为:proxool.数据源的别名
Connection conn = DriverManager.getConnection("proxool.First");
// 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("dest_name") + "\t");
System.out.println();
}
// 6:关闭数据库连接
conn.close();
}
/**
* 测试
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
test2();
}
}
proxool.xml
<?xml version="1.0" encoding="UTF-8"?>
<something-else-entirely>
<proxool>
<alias>First</alias>
<!--数据源的别名-->
<driver-url>jdbc:oracle:thin:@10.10.10.4:1521:orcl</driver-url>
<!--url连接串-->
<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
<!--驱动类-->
<driver-properties>
<!--用户名-->
<property name="user" value="tcar1" />
<!--密码-->
<property name="password" value="tcar_cityonmap2012" />
</driver-properties>
<!--最大连接数(默认5个),超过了这个连接数,再有请求时,就排在队列中等候,最大的等待请求数由maximum-new-connections决定 -->
<maximum-connection-count>100</maximum-connection-count>
<!--最小连接数(默认2个)-->
<minimum-connection-count>10</minimum-connection-count>
<!--proxool自动侦察各个连接状态的时间间隔(毫秒),侦察到空闲的连接就马上回收,超时的销毁 默认30秒-->
<house-keeping-sleep-time>90000</house-keeping-sleep-time>
<!--没有空闲连接可以分配而在队列中等候的最大请求数,超过这个请求数的用户连接就不会被接受-->
<maximum-new-connections>10</maximum-new-connections>
<!--最少保持的空闲连接数(默认2个)-->
<prototype-count>5</prototype-count>
<!--在使用之前测试-->
<test-before-use>true</test-before-use>
<!--用于保持连接的测试语句 -->
<house-keeping-test-sql>select sysdate from dual</house-keeping-test-sql>
</proxool>
</something-else-entirely>