先贴个介绍
http://i.cn.yahoo.com/suzie0228/blog/p_41/
proxool是一个开源的连接池,性能优异,最好的是:即时监控连接池状态
下面简单说说它的使用方法:1、首先下载proxool 地址:http://proxool.sourceforge.net
2、解压缩proxool-0.9.0RC3.zip,拷贝lib下的所有jar库文件到你的工程下的WEB-INF/lib下,同时记得也把Mysql的jdbc驱动到web-info/lib
3、在WEB-INF下(别跑错地方)建立文件:proxool.xml
proxool.xml这个文件是用来设置别名的。
其中<proxool>标签就是别名的设置段。
alias是别名;
driver-url是驱动的url,就是连接的url;
driver-class是驱动的类,就是数据库驱动;
driver-properties是驱动的属性,可以设置登陆数据库的用户名和密码。maximum-connection-count是最大连接数。
代码
文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<proxool>
<alias>DBPool</alias> <!--这里是连接池的别名-->
<driver-url>jdbc:mysql://localhost:3306/databaseName</driver-url>
<driver-class>org.gjt.mm.mysql.Driver</driver-class>
<driver-properties>
<property name="user" value="root"/>
<property name="password" value="12345"/>
</driver-properties>
<maximum-connection-count>500</maximum-connection-count>
<house-keeping-test-sql>select CURRENT_DATE</house-keeping-test-sql>
</proxool>
4、在WEB-INF/web.xml中<web-app>节点里加入如下内容:
<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><!--这里对应刚才建立的xml配置文件名-->
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- proxool提供的管理监控工具,可查看当前数据库连接情况-->
<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>
5、在需要连接数据库时,只需要写:
Connection conn = DriverManager.getConnection("proxool.DBPool");
其它像conn.createStatement();和conn.prepareStatement(sql);之类的操作都和原来一样。关闭连接一定要注意在catch 和 final里也要关闭。
6、proxool的JSP测试示例
<[email=%@page]%@page[/email] import="java.sql.*"%>
<[email=%@page]%@page[/email] contentType="text/html; charset=GBK"%>
<html>
<head>
<title>ProxoolTest</title>
</head>
<body bgcolor="#ffffff">
<h1>Proxool连接池测试</h1>
<%
Connection con = null;
Statement stmt = null;
ResultSet rs = null;
try {
con = DriverManager.getConnection("proxool.DBPool");
stmt = con.createStatement();
String query = "select * from t_function t";
out.println("query:" + query+ "--OK<br/>");
rs = stmt.executeQuery(query);
out.println("rs.next():" + rs.next()+ "--OK<br/>");
while (rs.next()) {
out.println(rs.getString(2) + "--OK<br/>");
}
}
catch (SQLException sqle) {
out.println("sqle=" + sqle+ "--OK<br/>");
}
finally {
try {
rs.close();
stmt.close();
if (con != null) {
con.close();
}
}
catch (SQLException sqle) {
out.println("sqle=" + sqle+ "--OK<br/>");
}
}
%>
</body>
</html>
<?xml version="1.0" encoding="UTF-8"?>
<proxool>
<alias>DBPool</alias> <!--这里是连接池的别名-->
<driver-url>jdbc:mysql://localhost:3306/databaseName</driver-url>
<driver-class>org.gjt.mm.mysql.Driver</driver-class>
<driver-properties>
<property name="user" value="root"/>
<property name="password" value="12345"/>
</driver-properties>
<maximum-connection-count>500</maximum-connection-count>
<house-keeping-test-sql>select CURRENT_DATE</house-keeping-test-sql>
</proxool>
4、在WEB-INF/web.xml中<web-app>节点里加入如下内容:
<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><!--这里对应刚才建立的xml配置文件名-->
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- proxool提供的管理监控工具,可查看当前数据库连接情况-->
<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>
5、在需要连接数据库时,只需要写:
Connection conn = DriverManager.getConnection("proxool.DBPool");
其它像conn.createStatement();和conn.prepareStatement(sql);之类的操作都和原来一样。关闭连接一定要注意在catch 和 final里也要关闭。
6、proxool的JSP测试示例
<[email=%@page]%@page[/email] import="java.sql.*"%>
<[email=%@page]%@page[/email] contentType="text/html; charset=GBK"%>
<html>
<head>
<title>ProxoolTest</title>
</head>
<body bgcolor="#ffffff">
<h1>Proxool连接池测试</h1>
<%
Connection con = null;
Statement stmt = null;
ResultSet rs = null;
try {
con = DriverManager.getConnection("proxool.DBPool");
stmt = con.createStatement();
String query = "select * from t_function t";
out.println("query:" + query+ "--OK<br/>");
rs = stmt.executeQuery(query);
out.println("rs.next():" + rs.next()+ "--OK<br/>");
while (rs.next()) {
out.println(rs.getString(2) + "--OK<br/>");
}
}
catch (SQLException sqle) {
out.println("sqle=" + sqle+ "--OK<br/>");
}
finally {
try {
rs.close();
stmt.close();
if (con != null) {
con.close();
}
}
catch (SQLException sqle) {
out.println("sqle=" + sqle+ "--OK<br/>");
}
}
%>
</body>
</html>