这个连接池可以自动识别坏连接的,建议网络环境不稳定的情况下使用
使用方法很简单:
1 导入jar文件:proxool-0.9.0RC3.jar和commons-logging.jar(从http://proxool.sourceforge.net/下载)
2 在WEB-INF目录下创建proxool.xml文件:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- the proxool configuration can be embedded within your own application's.
Anything outside the "proxool" tag is ignored. -->
<something-else-entirely>
<proxool>
<alias>oracle</alias>
<driver-url>jdbc:oracle:thin:@172.168.1.1:1521:dbtest</driver-url>
<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
<driver-properties>
<property name="user" value="u"/>
<property name="password" value="p"/>
</driver-properties>
<maximum-connection-count>10</maximum-connection-count>
<house-keeping-test-sql>select sysdate from YOUR_TABLE_NAME</house-keeping-test-sql>
<house-keeping-sleep-time>90000</house-keeping-sleep-time>
<maximum-new-connections>10</maximum-new-connections>
<prototype-count>5</prototype-count>
<maximum-connection-count>50</maximum-connection-count>
<minimum-connection-count>10</minimum-connection-count>
</proxool>
</something-else-entirely>
3 在web.xml里添加
<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>
4可以自己写个类似的类来获取或关闭连接
public class DBUtil {
public static Connection getConnection() {
Connection con=null;
try{
con=DriverManager.getConnection("proxool.oracle");
} catch (SQLException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
return con;
}
public static void releaseResultSet(ResultSet rs) {
// TODO 自动生成方法存根
try{
if(rs!=null){
rs.close();
}
}catch( Exception e){
e.printStackTrace();
}
}
public static void releaseStatement(PreparedStatement ps) {
// TODO 自动生成方法存根
try{
if(ps!=null){
ps.close();
}
}catch( Exception e){
e.printStackTrace();
}
}
public static void releaseConnection(Connection con) {
// TODO 自动生成方法存根
try{
if(con!=null){
con.close();
}
}catch( Exception e){
e.printStackTrace();
}
}
public static void releaseStatement(Statement ps) {
// TODO 自动生成方法存根
try{
if(ps!=null){
ps.close();
}
}catch( Exception e){
e.printStackTrace();
}
}
}