1.
1 package com.asm; 2 3 import java.io.File; 4 import java.io.InputStream; 5 import java.sql.Connection; 6 import java.sql.DriverManager; 7 import java.sql.ResultSet; 8 import java.sql.Statement; 9 10 import org.junit.Test; 11 import org.logicalcobwebs.proxool.configuration.JAXPConfigurator; 12 import org.springframework.test.context.TestExecutionListeners; 13 14 public class TestProxool { 15 public static String dburl = "jdbc:mysql://localhost:3306/test"; 16 public static String user = "root"; 17 public static String password = "123456"; 18 19 /** 20 * /** * JDBC方式测试 * * @throws Exception 21 */ 22 @Test 23 public void test() throws Exception { 24 String testsql = "select * from village t where lastid = 1"; 25 // 1:注册驱动类 26 Class.forName("com.mysql.jdbc.Driver"); 27 // 2:创建数据库连接 28 Connection conn = DriverManager.getConnection(dburl, user, password); 29 // 3:创建执行SQL的对象 30 Statement stmt = conn.createStatement(); 31 // 4:执行SQL,并获取返回结果 32 ResultSet rs = stmt.executeQuery(testsql); 33 // 5:处理返回结果,此处打印查询结果 34 while (rs.next()) { 35 System.out.print(rs.getLong("lastid") + "\t"); 36 System.out.print(rs.getString("lastname") + "\t"); 37 System.out.println(); 38 } 39 // 6:关闭数据库连接 40 conn.close(); 41 } 42 43 /** 44 * * proxool方式测试 * * @throws Exception 45 */ 46 @Test 47 public void test2() throws Exception { 48 //Java应用中先要加载配置文件,否则谁知道你配置给谁用的 49 JAXPConfigurator.configure("F:\\hysworkspace1\\ProxoolTest\\src\\proxool.xml", false); 50 String testsql = "select * from village t where lastid = 1"; 51 //1:注册驱动类,这次这个驱动已经不是Oracle的驱动了,是Proxool专用的驱动 52 Class.forName("org.logicalcobwebs.proxool.ProxoolDriver"); 53 //2:创建数据库连接,这个参数是一个字符串,是数据源的别名,在配置文件中配置的timalias,参数格式为:proxool.数据源的别名 54 Connection conn = DriverManager.getConnection("proxool.timalias"); 55 //3:创建执行SQL的对象 56 Statement stmt = conn.createStatement(); 57 //4:执行SQL,并获取返回结果 58 ResultSet rs = stmt.executeQuery(testsql); 59 //5:处理返回结果,此处打印查询结果 60 while (rs.next()) { 61 System.out.print(rs.getLong("lastid") + "\t"); 62 System.out.print(rs.getString("lastname") + "\t"); 63 System.out.println(); 64 } 65 //6:关闭数据库连接 66 conn.close(); 67 } 68 }
2.
1 <?xml version="1.0" encoding="UTF-8"?> 2 <something-else-entirely> 3 <proxool> 4 <alias>timalias</alias> 5 <!--数据源的别名--> 6 <driver-url>jdbc:mysql://localhost:3306/test</driver-url> 7 <!-- url连接串 --> 8 <driver-class>com.mysql.jdbc.Driver</driver-class> 9 <!-- 驱动类 --> 10 <driver-properties> 11 <property name="user" value="root"/> 12 <!-- 用户名 --> 13 <property name="password" value="123456"/> 14 <!-- 密码 --> 15 </driver-properties> 16 <!-- 最大连接数(默认5个),超过了这个连接数,再有请求时,就排在队列中等候,最大的等待请求数由maximum-new-connections决定 --> 17 <maximum-connection-count>100</maximum-connection-count> 18 <!-- 最小连接数(默认2个) --> 19 <minimum-connection-count>10</minimum-connection-count> 20 <!-- proxool自动侦察各个连接状态的时间间隔(毫秒),侦察到空闲的连接就马上回收,超时的销毁 默认30秒 --> 21 <house-keeping-sleep-time>90000</house-keeping-sleep-time> 22 <!-- 没有空闲连接可以分配而在队列中等候的最大请求数,超过这个请求数的用户连接就不会被接受 --> 23 <maximum-new-connections>10</maximum-new-connections> 24 <!-- 最少保持的空闲连接数(默认2个) --> 25 <prototype-count>5</prototype-count> 26 <!-- 在使用之前测试 --> 27 <test-before-use>true</test-before-use> 28 <!-- 用于保持连接的测试语句 --> 29 <house-keeping-test-sql>SELECT NOW()</house-keeping-test-sql> 30 </proxool> 31 </something-else-entirely>
3、说明
Proxool的配置文件路径不能使用ClassPath,我查看过接口代码,可以传入一个XmlReader、或流来解决,这里写成绝对路径就凑合着能跑起来就行。
也支持Properties的配置,则个可以参考官方文档,也很方便的。
有关配置参数,网上的文档一堆一堆的重复,大家随便找篇就行。