除了直接使用JAXPConfigurator從XML或屬性檔讀取組態設定之外,如果您正在運行Web
應用程式,您可以透過org.logicalcobwebs.proxool.configuration.ServletConfigurator,將
之設定為Servlet,並於Container一啟始時就載入Proxool以初始連接池,要這麼作,請將proxool-0.8.3.jar放到
WEB/lib目錄中。
使用ServletConfigurator時,您有三種方式可以設定相關參數給它,透過XML、透過屬性檔、透過設定Servlet初始參數。
首先是透過XML檔案,XML檔案的設定請參考前一個主題,在web.xml中,您可以這麼設定:
<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.xml中,您可以這麼設定:
<servlet>
<servlet-name>ServletConfigurator</servlet-name>
<servlet-class>org.logicalcobwebs.proxool.configuration.ServletConfigurator</servlet-class>
<init-param>
<param-name>propertyFile</param-name>
<param-value>WEB-INF/proxool.properties</param-value>
</init-param>
</servlet>
上面兩種作法,其實ServletConfigurator也各是委託JAXPConfigurator或
PropertyConfigurator來讀取組態設定;您也可以不透過檔案設定組態,而直接在web.xml中透過Servlet初始參數的設定來指
定相關參數:
<servlet>
<servlet-name>ServletConfigurator</servlet-name>
<servlet-class>org.logicalcobwebs.proxool.configuration.ServletConfigurator</servlet-class>
<init-param>
<param-name>jdbc-0.proxool.alias</param-name>
<param-value>example</param-value>
</init-param>
<init-param>
<param-name>jdbc-0.proxool.driver-url</param-name>
<param-value>jdbc:mysql: </init-param>
<init-param>
<param-name>jdbc-0.proxool.driver-class</param-name>
<param-value>com.mysql.jdbc.Driver</param-value>
</init-param>
<init-param>
<param-name>jdbc-0.user</param-name>
<param-value>caterpillar</param-value>
</init-param>
<init-param>
<param-name>jdbc-0.password</param-name>
<param-value>123456</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
取得連線的方式只要下面這句就行了:
Connection conn = DriverManager.getConnection("proxool.example");
下面這個JSP簡單的測試一下是否可以取得連線:
<%@page import="java.sql.*"%>
<%@page contentType="text/html;charset=Big5"%>
<%
try {
Connection conn = DriverManager.getConnection("proxool.example");
if(!conn.isClosed())
out.println("資料庫連線測試成功!");
conn.close();
}
catch(SQLException e) {
out.println(e.toString());
}
%>