项目中关于数据库的连接,一般都采用数据源的方式。反正这次是自己实现,没有其他的要求,就在网上找了一个好点的数据源的实现。看了好几篇文章,都说 Proxool 比较好,就采用它来实现数据源吧。下面来实现:
1,在项目中的 WEB-INF 目录下建立 proxool.xml 文件(在其他目录也行,只要能找到就行),内容为:
Xml代码
<?xml version="1.0" encoding="UTF-8"?>
<proxool>
<!-- 数据库连接别名,通过 proxool.15DayWeb 来获取此连接 -->
<alias>15DayWeb</alias>
<!-- 数据库驱动 -->
<driver-url>jdbc:mysql://localhost:3306/15dayweb</driver-url>
<!-- 驱动程序类 -->
<driver-class>com.mysql.jdbc.Driver</driver-class>
<!-- 联机数据库的用户和密码 -->
<driver-properties>
<property name="user" value="root" />
<property name="password" value="root" />
</driver-properties>
<!-- 最小连接数量,建议设置0以上,保证第一次连接时间 -->
<minimum-connection-count>2</minimum-connection-count>
<!-- 最大连接数量,如果超过最大连接数量则会抛出异常
连接数设置过多,服务器CPU和内存性能消耗很大 -->
<maximum-connection-count>20</maximum-connection-count>
<!-- 某一时间点的最大连接数 -->
<simultaneous-build-throttle>10</simultaneous-build-throttle>
<!-- 一次性产生连接的数量 -->
<prototype-count>2</prototype-count>
<!-- 连接最大时间活动 默认5分钟 单位:秒 -->
<maximum-active-time>120</maximum-active-time>
<!-- 连接最大生命时间 默认4小时 单位:秒 -->
<maximum-connection-lifetime>600</maximum-connection-lifetime>
</proxool>
<?xml version="1.0" encoding="UTF-8"?>
<proxool>
<!-- 数据库连接别名,通过 proxool.15DayWeb 来获取此连接 -->
<alias>15DayWeb</alias>
<!-- 数据库驱动 -->
<driver-url>jdbc:mysql://localhost:3306/15dayweb</driver-url>
<!-- 驱动程序类 -->
<driver-class>com.mysql.jdbc.Driver</driver-class>
<!-- 联机数据库的用户和密码 -->
<driver-properties>
<property name="user" value="root" />
<property name="password" value="root" />
</driver-properties>
<!-- 最小连接数量,建议设置0以上,保证第一次连接时间 -->
<minimum-connection-count>2</minimum-connection-count>
<!-- 最大连接数量,如果超过最大连接数量则会抛出异常
连接数设置过多,服务器CPU和内存性能消耗很大 -->
<maximum-connection-count>20</maximum-connection-count>
<!-- 某一时间点的最大连接数 -->
<simultaneous-build-throttle>10</simultaneous-build-throttle>
<!-- 一次性产生连接的数量 -->
<prototype-count>2</prototype-count>
<!-- 连接最大时间活动 默认5分钟 单位:秒 -->
<maximum-active-time>120</maximum-active-time>
<!-- 连接最大生命时间 默认4小时 单位:秒 -->
<maximum-connection-lifetime>600</maximum-connection-lifetime>
</proxool>
2,在项目中 web.xml 中添加所配置的数据源,在 web-app 下添加如下内容:
Xml代码
<!-- 配置数据源 -->
<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>
<!-- 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>
<!-- 配置数据源 -->
<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>
<!-- 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>
对于管理监视工具,如果不使用可以不进行配置。
3,测试:
Java代码
// 获取数据库连接
public void getConnection() throws Exception {
if (conn == null) {
//proxool驱动类
Class.forName("org.logicalcobwebs.proxool.ProxoolDriver");
// 此处的DBPool是在proxool.xml中配置的连接池别名
conn = DriverManager.getConnection("proxool.15DayWeb");
}
}
// 数据库访问,执行查询操作
public ResultSet query(String sql) throws Exception {
// 初始化数据库连接
getConnection();
// 创建 Statement 对象
Statement stmt = conn.createStatement();
// 构造 sql 语句
sql = "select * from about_team_table";
return stmt.executeQuery(sql);
}
// 测试是否可以正常读取表 about_team_table 的数据
public static void main(String[] args) throws Exception {
DbDao dd = new DbDao();
ResultSet rs = dd.query("");
while (rs.next()) {
System.out.println(rs.getInt("id"));
System.out.println(rs.getString("name"));
System.out.println(rs.getString(3));
System.out.println(rs.getString(4));
System.out.println(rs.getBinaryStream("photo"));
}
}
// 获取数据库连接
public void getConnection() throws Exception {
if (conn == null) {
//proxool驱动类
Class.forName("org.logicalcobwebs.proxool.ProxoolDriver");
// 此处的DBPool是在proxool.xml中配置的连接池别名
conn = DriverManager.getConnection("proxool.15DayWeb");
}
}
// 数据库访问,执行查询操作
public ResultSet query(String sql) throws Exception {
// 初始化数据库连接
getConnection();
// 创建 Statement 对象
Statement stmt = conn.createStatement();
// 构造 sql 语句
sql = "select * from about_team_table";
return stmt.executeQuery(sql);
}
// 测试是否可以正常读取表 about_team_table 的数据
public static void main(String[] args) throws Exception {
DbDao dd = new DbDao();
ResultSet rs = dd.query("");
while (rs.next()) {
System.out.println(rs.getInt("id"));
System.out.println(rs.getString("name"));
System.out.println(rs.getString(3));
System.out.println(rs.getString(4));
System.out.println(rs.getBinaryStream("photo"));
}
}
可以正常使用,测试中不主动关闭连接,在监视工具中当超过活动连接时间自动销毁,不过在使用中还是要释放连接的,连接的最大数毕竟是有限的。
tomcat 版本:apache-tomcat-6.0.18
JDK 版本:jdk-6u11-windows-i586-p
NetBeans版本:netbeans-6.5-ml-windows
proxool 版本:proxool-0.9.1
分享到:
相关推荐
proxool-0.9.1.jar下载 hibernate3+ proxool-0.9.1配置说明 我刚配好,总结出来和大家分享下
proxool配置参数说明。 spring结合proxool的datasource配置方法 及proxool-0.9.1.jar proxool-cglib.jar
proxool-0.9.1.jar proxool_cglib-0.9.1.jar 用于连接池的配置
proxool-0.9.1 Hibernate 的常用链接池技术 附带配置 一学就会
proxool0.9.1jar包,Hibernate3.x适用,用于Hibernate连接池的配置
Proxool-数据源配置详解,内附部分proxool-0.9.1.jar,proxool-cglib.jar 以及 Proxool配制详解.doc
proxool是个很好的开源连接池。但配置文件中的用户和密码却是明文存储的,如果对系统安全有较高的要求,使用时就麻烦了。文件做了些小小的改动,现在proxool配置文件中用户和密码可以使用密文存储了,同时明文的也...
proxool-0.9.1(my).jar 包是我修改了proxool-0.9.1后的jar包,修改后可以完全支持spring配置,并添加了charSet配置属性,用于配置数据库链接的设置默认字符集,并且解决了proxool数据库连接池报如下错误的问题:...
proxool 数据库连接池用户名、密码加密处理,文件里面包含可直接使用加密的jar以及相关使用说明。
1、proxool官网,下载最新的proxool-0.9.1.jar 2、创建独立的proxool.xml文件,同时存在Web的WEB-INF目录下,根据自己的数据库类型,填写不同的数据库驱动信息及具体配置信息,本文以oracle为例。 3、创建自定义...
5.修正了ProxoolDataSource这个bean在spring配置中几个property不正确的问题。 houseKeepingSleepTime maximumConnectionLifetime overloadWithoutRefusalLifetime recentlyStartedThreshold 这几个参数设置...
ssh s2sh proxool监听listenner配置方式需要的包proxool-0.9.1.jar包其中还有proxool-cglib.jar和proxoolListenerConfig.jar请在本空间下载
Proxool0.9.1的配置与应用[定义].pdf
driver-3.0.2.jar,mysql-connector-java-5.1.7-bin.jar,netty-all-4.0.25.Final.jar,parserXml.rar,proxool-0.9.1.jar,proxool-cglib.jar,quartz-all-1.6.5.jar,slf4j-api-1.6.1.jar,slf4j-simple-1.6.1.jar,sqlite...
spring配置proxool连接db2用到的proxool相关jar包:proxool-cglib.jar;proxool-0.9.1.jar ;proxool-listenerCfg.jar。
proxool-0.9.1 的使用,一个很不错的链接池,配置也简单
配置全局数据库连接池需需要的的JAR包:commons-logging-1.1.3、commons-logging-api-1.1、mysql-connector-java-5.0.8-bin、proxool-0.9.1、proxool-cglib
解决在使用spring 配置 proxool 0.9.1时碰到‘houseKeepingSleepTime’is not writeable or has an invalid setter method的问题。 方法是将org.logicalcobwebs.proxool.ProxoolDataSource 中houseKeepingSleepTime...
hibernate4 的配置文件里面 ProxoolConnectionProvider找不到的问题 hibernate4和proxool 0.9.1的关键问题