加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

Proxool连接池使用方法

发布时间:2020-12-12 15:44:01 所属栏目:MsSql教程 来源:网络整理
导读:首先,?你要把下载?proxool?的?lib?下面所有的?jar?文件,?放到?WEB-INF/lib?下面,? 另外,?把你的?jdbc?driver?也放到相同的?lib,? 接著就是设定?/WEB-INF/web.xml? web.xml #########web.xml?start?here? ?xml?version="1.0"?encoding="UTF-8"? !DOCTYPE?web-
首先,?你要把下载?proxool?的?lib?下面所有的?jar?文件,?放到?WEB-INF/lib?下面,?
另外,?把你的?jdbc?driver?也放到相同的?lib,?
接著就是设定?/WEB-INF/web.xml?

web.xml
#########web.xml?start?here?

<?xml?version="1.0"?encoding="UTF-8"?>
<!DOCTYPE?web-app?
PUBLIC?"-//Sun?Microsystems,?Inc.//DTD?Web?Application?2.3//EN"?
"/WEB-INF/dtds/web-app_2_3.dtd">
<web-app>
<display-name>proxool</display-name>
<servlet>
??<servlet-name>Admin</servlet-name>
??<servlet-class>org.logicalcobwebs.proxool.admin.servlet.AdminServlet</servlet-class>
</servlet>

<servlet-mapping>
??<servlet-name>Admin</servlet-name>
??<url-pattern>/admin</url-pattern>
</servlet-mapping>?

</web-app>

#########web.xml?end?here?


SECTION?02?透过?ProxoolDriver?取得?connection?

建立一个?jsp?or?DAO?Bean,?透过?org.logicalcobwebs.proxool.ProxoolDriver?建立?Connection

test.jsp

<%@page?import="java.sql.*"%>
<%
Connection?connection?=?null;
try?{
Class.forName("org.logicalcobwebs.proxool.ProxoolDriver");

connection?=?DriverManager.getConnection(
"proxool.test:org.gjt.mm.mysql.Driver:jdbc:mysql://localhost:3306/test",
"root",
"password"
);
}?catch?(Exception?e)?{
out.println(e);
}
out.println("OK");
%>


SECTION?04?检视?pooling?现在状态?

执行? http://localhost:8080/proxool-test/admin??如果没有任何?pool?状态的时候,?你只会看到?Pools?这几个字,?所以你先执行? http://localhost:8080/proxool-test/test.jsp??建立一个?connection,?就可以监控?connection?pooling?的状态了.?

SECTION?05?使用?properties?或者?xml?来设定?DB?URL?及?Driver?

可以采用?xml?设定,?在程式中使用?JAXPConfigurator.configure("proxool.xml",?false);?将资料设定?

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>xml-test</alias>
????<driver-url>jdbc:mysql://localhost:3306/test</driver-url>
????<driver-class>org.gjt.mm.mysql.Driver</driver-class>
????<driver-properties>
??????<property?name="user"?value="root"/>
??????<property?name="password"?value="password"/>
????</driver-properties>
????<maximum-connection-count>10</maximum-connection-count>
????<house-keeping-test-sql>select?CURRENT_DATE</house-keeping-test-sql>
??</proxool>
</something-else-entirely>


也可以采用?properties,?在程式?PropertyConfigurator.configure("proxool.properties");?将资料设定?

WEB-INF/proxool.properties
jdbc-0.proxool.alias=property-test
jdbc-0.proxool.driver-url=jdbc:mysql://localhost:3306/test
jdbc-0.proxool.driver-class=org.gjt.mm.mysql.Driver
jdbc-0.user=root
jdbc-0.password=password
jdbc-0.proxool.maximum-connection-count=10
jdbc-0.proxool.house-keeping-test-sql=select?CURRENT_DATE


如果在?Web?使用,?在?web.xml?也可以设定?ServletConfigurator?Servlet?来注册

<?xml?version="1.0"?encoding="UTF-8"?>
<!DOCTYPE?web-app?
PUBLIC?"-//Sun?Microsystems,?Inc.//DTD?Web?Application?2.3//EN"
"/WEB-INF/dtds/web-app_2_3.dtd">
<web-app>
<display-name>proxool</display-name>

<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>?

<servlet>
??<servlet-name>Admin</servlet-name>
??<servlet-class>
??org.logicalcobwebs.proxool.admin.servlet.AdminServlet
??</servlet-class>
</servlet>

<servlet-mapping>
??<servlet-name>Admin</servlet-name>
??<url-pattern>/admin</url-pattern>
</servlet-mapping>?

</web-app>


在程式中,?只需要利用到别名就可以呼叫?connection?pool?里面的?connection?来使用了?

<%@page?import="java.sql.*;"%>
<%
Connection?connection?=?null;
try?{
Class.forName("org.logicalcobwebs.proxool.ProxoolDriver");
connection?=?DriverManager.getConnection("proxool.xml-test");

}?catch?(Exception?e)?{
out.println(e);
}

out.println("ok");
%>


SECTION?06?使用?connection.close()?关闭?connection?

以上的例子我都没有写?close,?在?connection?做完之后记得使用?close()?来关闭,否则很快就会到达最大连接数的.?

SECTION?07?中文问题 和往常一样,中文的问题就会出现。对于mysql,好消息是写入数据库的中文可以正常,坏消息是显示的中文还是不正常。 和以往的方法不一样,要正确显示,必须用 String?des?=?new?String(s_string.getBytes("GBK"),"iso8859-1"); 把GBK转为iso8859-1就可以正常使用了,另外,用下面的方法也可以解决: 在MYSQL的MY.INI里加上 [mysqld] default-character-set?=?gb2312 [client] default-character-set?=?gb2312 SECTION?07?多类型连接的问题 经常在应用中即需要连接MYSQL,又需要连接ORACLE,又该如何去实现呢?我们可以用proxool.xml来实现: <?xml?version="1.0"?encoding="UTF-8"?> <foo> ?<proxool> ?<alias>xfort</alias> ?<driver-url>jdbc:jtds:sqlserver://xforttest/XFORT</driver-url> ?<driver-class>net.sourceforge.jtds.jdbc.Driver</driver-class> ?<driver-properties> ?<property?name="user"?value="xfort"?/> ?<property?name="password"?value="xfort"?/> ?</driver-properties> ?</proxool> ?<proxool> ?<alias>xfort5</alias> ?<driver-url>jdbc:jtds:sqlserver://xforttest/XFORT5</driver-url> ?<driver-class>net.sourceforge.jtds.jdbc.Driver</driver-class> ?<driver-properties> ?<property?name="user"?value="xfort"?/> ?<property?name="password"?value="xfort"?/> ?</driver-properties> ?</proxool> </foo> 用的时候: ?JAXPConfigurator.configure("proxool.xml",?false); ?Connection?conn?=?DriverManager.getConnection("proxool.xfort"); ?PreparedStatement?pstmt?=?conn.prepareStatement("SELECT?*?FROM?table"); ?pstmt.executeQuery(); ?conn.close(); ?conn?=?DriverManager.getConnection("proxool.xfort5"); ?pstmt?=?conn.prepareStatement("SELECT?*?FROM?table"); ?pstmt.executeQuery(); ?conn.close();

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读