以前都是用SSH框架,spring借助的是Tomcat的dbcp數據源,最近做網站也沒用什么框架,直接Sservlet+JSP,依舊用的 Tomcat的dbcp做數據源,經常發現網絡不好時連接就獲取不到了,那是因為池子中的連接都已經無效了,Tomcat數據源的自動重連貌似配置較為復雜,很多人建議用proxool做數據源,下面是proxool的配置方法:
<servlet>
<servlet-name>proxoolServletConfigurator</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>
<servlet>
<servlet-name>proxooladmin</servlet-name>
<servlet-class>org.logicalcobwebs.proxool.admin.servlet.AdminServlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>proxooladmin</servlet-name>
<url-pattern>/proxooladmin</url-pattern>
</servlet-mapping>
<?xml version="1.0" encoding="UTF-8"?>
<something-else-entirely>
<proxool>
<alias>testDB</alias>
<driver-url>jdbc:oracle:thin:@192.168.1.229:1521:orcl</driver-url>
<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
<driver-properties>
<property name="user" value="test_user" />
<property name="password" value="password" />
</driver-properties>
<maximum-connection-count>10</maximum-connection-count>
<minimum-connection-count>5</minimum-connection-count>
<prototype-count>5</prototype-count>
<test-before-use>true</test-before-use>
<house-keeping-sleep-time>180000</house-keeping-sleep-time>
<house-keeping-test-sql>select CURRENT_DATE from dual</house-keeping-test-sql>
</proxool>
</something-else-entirely>
Connection con = DriverManager.getConnection("proxool.testDB");
1.下載proxool,自己到網站http://proxool.sourceforge.net/download.html隨便下載一個版本,解壓后進入目錄lib,會得到兩個jar文件,分別為proxool-0.9.1.jar(版本不同可能名稱有所不同)和proxool-cglib.jar,將這兩個jar文件拷貝到項目的WEB-INF/lib下
2.配置web.xml,需要配置proxool的Servlet,如下:



















3.創建proxool.xml文件,將此文件放在與web.xml同級目錄下,即WEB-INF下


















上面的<test-before-use>true</test-before-use>據說是用來自動重連的,也就是在網絡錯誤或數據庫重啟等等原因導致與數據庫斷開,每次獲取連接前都會檢查,如果現在池子中的連接已經無效將會重新創建
4.在java中獲取數據庫連接的代碼
