日期:2014-05-16  浏览次数:20388 次

proxool连接数据库的简单应用
配置web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>ServletConfigurator</servlet-name>
<servlet-class>
org.logicalcobwebs.proxool.configuration.ServletConfigurator</servlet-class>
<init-param>
<param-name>xmlFile</param-name>
<param-value>WEB-INF/proxool.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>

</web-app>
配置proxool.xml
<?xml version="1.0" encoding="UTF-8"?>
<proxool-config>
<proxool>
<alias>datasource1</alias>
<driver-url>jdbc:mysql://127.0.0.1:3306/hibernate</driver-url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<driver-properties>
<property name="user" value="root" />
<property name="password" value="mysql" />
</driver-properties>
<house-keeping-sleep-time>90000</house-keeping-sleep-time>
<maximum-new-connections>20</maximum-new-connections>

<prototype-count>5</prototype-count>

<maximum-connection-count>500</maximum-connection-count>
<minimum-connection-count>50</minimum-connection-count>
</proxool>
</proxool-config>
在jsp页面上测试(不要在java的main方法中,会报数据库没注册错误):
Class.forName("org.logicalcobwebs.proxool.ProxoolDriver");// proxool驱动类
Connection conn = DriverManager.getConnection("proxool.datasource1");

如果要在main方法中测试:
ProxoolDataSource ds = new ProxoolDataSource();
// 基本属性
ds.setDriver("com.mysql.jdbc.Driver");
ds.setDriverUrl("jdbc:mysql://127.0.0.1:3306/hibernate");
ds.setUser("root");
ds.setPassword("mysql");
// 池属性
ds.setAlias("testPool");// 设置连接池名
ds.setMaximumConnectionCount(100); // 最大连接数 默认值:15个
ds.setMinimumConnectionCount(10); // 最小连接数 默认值:5个
ds.setMaximumActiveTime(600 * 1000); // 最大活动时间 默认值:5分钟
ds.setMaximumConnectionLifetime(5 * 60 * 60 * 1000); // 最大连接生命周期 默认值:4小时
// 检验连接属性
ds.setHouseKeepingSleepTime(60 * 60 * 1000); // 检测连接进程的间隔时间
ds.setHouseKeepingTestSql("select count(*) from dual");// 检测连接的SQL代码
ds.setTestAfterUse(true); // 使用connection前检测
ds.setTestBeforeUse(true);// 使用connection后检测

System.out.println(ds.getConnection());