本文記錄在 Eclipse + JDK 8 環境下,使用 Proxool 0.9.1 連接池管理 HSQLDB 數據庫的完整實踐,涵蓋數據庫啟動、四種配置方式(Java 硬編碼、Properties 文件、XML 文件、Servlet 透明模式)及 Tomcat 部署驗證。
hsqldb.jar,啟動 Server 與 DatabaseManagerSwing 客戶端proxool-0.9.1.jar、jarjar-0.6.jar、cglib-nodep-2.1_3.jar、proxool-cglib.jarorg.hsqldb.server.Server 啟動服務端org.hsqldb.util.DatabaseManagerSwing,選 HSQL Database Engine Server,URL jdbc:hsqldb:hsql://localhost/,用戶 SA,密碼空,連接驗證Properties info = new Properties();
info.setProperty("proxool.maximum-connection-count", "20");
info.setProperty("proxool.house-keeping-test-sql", "SELECT CURRENT_DATE");
info.setProperty("user", "sa"); info.setProperty("password", "");
String alias = "test";
String url = "proxool." + alias + ":" + "org.hsqldb.jdbc.JDBCDriver" + ":" + "jdbc:hsqldb:hsql://localhost/";
Class.forName("org.logicalcobwebs.proxool.ProxoolDriver");
Connection conn = DriverManager.getConnection(url, info);
proxool.properties:
jdbc-0.proxool.alias=property-test
jdbc-0.proxool.driver-url=jdbc:hsqldb:hsql://localhost/
jdbc-0.proxool.driver-class=org.hsqldb.jdbc.JDBCDriver
jdbc-0.user=sa
jdbc-0.password=
jdbc-0.proxool.maximum-connection-count=10
jdbc-0.proxool.house-keeping-test-sql=SELECT CURRENT_DATE
代碼:
Properties info = new Properties();
info.load(getClass().getResourceAsStream("/proxool.properties"));
PropertyConfigurator.configure(info);
Class.forName("org.logicalcobwebs.proxool.ProxoolDriver");
Connection conn = DriverManager.getConnection("proxool.property-test");
proxool.xml:
<proxool-config>
<proxool>
<alias>xml-test</alias>
<driver-url>jdbc:hsqldb:hsql://localhost/</driver-url>
<driver-class>org.hsqldb.jdbc.JDBCDriver</driver-class>
<driver-properties>
<property name="user" value="SA"/>
<property name="password" value=""/>
</driver-properties>
<maximum-connection-count>10</maximum-connection-count>
<house-keeping-test-sql>SELECT CURRENT_DATE</house-keeping-test-sql>
</proxool>
</proxool-config>
代碼:
JAXPConfigurator.configure(
new InputStreamReader(getClass().getResourceAsStream("/proxool.xml")), false);
Connection conn = DriverManager.getConnection("proxool.xml-test");
web.xml 註冊 Proxool 管理 Servlet 與配置加載 Servlet:
<servlet>
<servlet-name>proxool</servlet-name>
<servlet-class>org.logicalcobwebs.proxool.admin.servlet.AdminServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>proxool</servlet-name>
<url-pattern>/admin</url-pattern>
</servlet-mapping>
<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>
訪問 https://localhost:8080/項目/admin 顯示連接池監控頁面即部署成功。

Proxool 雖屬老牌連接池,但其多配置模式(Java/Properties/XML/Servlet)靈活適配不同架構階段。實戰中建議:開發期用 Java/Properties 快速驗證,生產環境採用 XML + ServletConfigurator 實現配置與代碼分離、熱加載友好。