通过Proxool配置访问数据库的要点
proxool 配置的时候有Proxool.properties 或者 Proxool.xml 两种方式初始化。 我的配置环境是 myEclipse10+tomcat6.0 + mysql5.0 。
数据库test和表t_user的信息如下:
在开始我们的讲解之前前先要下载 proxool-0.9.1.zip,拷贝proxool-0.9.1.jar 和 proxool-cglib.jar 到web-info/lib文件夹下。
下载proxool 的地址:http://proxool.sourceforge.net,读者可以根据情况下载最新的版本。
现在就方法Proxool.properties方法做讲解:
1. 首先右击WEB-INF——>New——File,在弹出的窗口中输入文件名为Proxool.properties 文件,然后通过点击Add来添加键值对:
对应的键值对如下:
jdbc-0.proxool.alias=mysql
jdbc-0.proxool.driver-url=jdbc:mysql://localhost:3306/test //注意这里的test是数据库的名称,可以根据自己的数据库设置
jdbc-0.proxool.driver-class=com.mysql.jdbc.Driver
jdbc-0.user=root //数据库访问名称
jdbc-0.password=root //数据库访问密码
jdbc-0.proxool.maximum-connection-count=30
jdbc-0.proxool.minimum-connection-count=5
jdbc-0.proxool.prototype-count=3
jdbc-0.proxool.house-keeping-test-sql=select CURRENT_DATE
jdbc-0.proxool.verbose=true
jdbc-0.proxool.statistics=10s,1m,1d
jdbc-0.proxool.statistics-log-level=ERROR
2. 向 web.xml 中添加 proxool初始化设置servlet 。 即 添加如下内容:
<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>
<load-on-startup>1</load-on-startup>
</servlet>
如果想要监控 proxool 连接池信息,可以加如下信息。 输入http://localhost:8080/PoolTest/admin.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.proxool</url-pattern>
</servlet-mapping>
3. 在 新建 test.jsp 内容如下
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@page import="java.sql.*"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
Connection conn = null;
try {
Class.forName("org.logicalcobwebs.proxool.ProxoolDriver");
conn = DriverManager.getConnection("proxool.mysql");
if( conn!=null )
System.out.println("数据库连接测试成功!");
Statement stmt = conn.createStatement();
ResultSet rst = null;
rst = stmt.executeQuery("select * from t_user"); // sql 查询语句,视具体情况而定
while( rst.next() )
out.println(rst.getString(2)); //显示第二列信息
}catch(SQLException e){
System.out.print( e.toString() );
// }catch(ProxoolException el) {
// System.out.print( el.toString() );
} catch(Exception ee){
System.out.print( ee.toString() );
}
finally {
try {
if(conn != null)
conn.close();
}catch(SQLException e2) {
System.out.print( e2.toString() );
}
}
%>
</body>
</html>
这里在启动Tomcat的时候会报错,需要引用的jar包是:commons-logging-1.1.1.jar和mysql-connector-java.jar,其中mysql-connector-java.jar是连接mysql数据库的包。
运行效果如图:
查看连接池信息:http://localhost:8080/PoolTest/admin.proxool,显示的画面如下:
访问其他的数据库和这种方法一样,只是引用的jar包、驱动等不同。