1.先下载Proxool连接池
地址:http://sourceforge.net/projects/proxool/files/proxool/0.9.1/proxool-0.9.1.zip/download
2.将proxool包导入到项目中,proxool-0.9.1.jar、proxool-cglib.jar,(注意:这里还要导入commons-logging.jar包,proxool没有自带这个包)
3、在WEB-INF下建proxool.xml文件,文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<something-else-entirely>
<proxool>
<alias>OA</alias>
<driver-url>jdbc:oracle:thin:@127.0.0.1:1521:orcl</driver-url>
<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
<driver-properties>
<property name="user" value="HCOA"></property>
<property name="password" value="HCOA"></property>
</driver-properties>
<!-- 最大连接数(默认15个),超过这个连接数,再有请求时,就排在队列中等候,最大的等待请求数maxnmun-new-connections决定 -->
<maximum-connection-count>100</maximum-connection-count>
<!-- 最小连接数(默认2个) -->
<minimum-connection-count>10</minimum-connection-count>
<!-- proxool自动侦察各个连接状态的时间间隔(毫秒),侦察到空闲的链接就马上回收,超时的就销毁 默认30秒 -->
<house-keeping-sleep-time>90000</house-keeping-sleep-time>
<!-- 没有空闲连接可以分配而在队列中等候的最大请求数,超过这个请求数的用户就不会被接受 -->
<maximum-new-connections>10</maximum-new-connections>
<!-- 最少保持的空闲连接数(默认2个) -->
<prototype-count>5</prototype-count>
<!-- 在使用之前测试 -->
<test-before-use>true</test-before-use>
<!-- 用于保持连接的测试语句 -->
<house-keeping-test-sql>select sysdate from dual</house-keeping-test-sql>
</proxool>
</something-else-entirely>
这里请注意 如果你拷贝我的代码出现的错误 请手动敲进去 这里可能是编码的问题 或者将中文去掉
4.修改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>
<servlet>
<servlet-name>Admin</servlet-name>
<servlet-class>
org.logicalcobwebs.proxool.admin.servlet.AdminServlet
</servlet-class>
</servlet>
5.写方法调用,我这里贴出代码,如有错误请指出,谢谢!
package com.fp.comm;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import org.logicalcobwebs.proxool.ProxoolException;
import org.logicalcobwebs.proxool.ProxoolFacade;
import org.logicalcobwebs.proxool.admin.SnapshotIF;
public class PoolManager {
private static int activeCount = 0;
//单例 唯一实例
private static class PoolManagerInstanse{
private static final PoolManager instance = new PoolManager();
}
public static PoolManager getInstance(){
return PoolManagerInstanse.instance;
}
public Connection getConnection(){
Connection conn = null;
try{
Class.forName("org.logicalcobwebs.proxool.ProxoolDriver"); //加载驱动
conn = DriverManager.getConnection("proxool.OA"); //此处的DBPool是在proxool.xml中配置的连接池别名
showSnapshotInfo();
}catch(Exception e){
System.out.println(e.getMessage());
}
return conn;
}
/**
* 此方法可以得到连接池的信息
* showSnapshotInfo
*/
private void showSnapshotInfo(){
try{
SnapshotIF snapshot = ProxoolFacade.getSnapshot("OA", true);
int curActiveCount=snapshot.getActiveConnectionCount();//获得活动连接数
int availableCount=snapshot.getAvailableConnectionCount();//获得可得到的连接数
int maxCount=snapshot.getMaximumConnectionCount() ;//获得总连接数
if(curActiveCount!=activeCount)//当活动连接数变化时输出的信息
{
System.out.println("活动连接数:"+curActiveCount+"(active) 可得到的连接数:"+availableCount+"(available) 总连接数:"+maxCount+"(max)");
activeCount = curActiveCount;
}
}catch(ProxoolException e){
e.printStackTrace();
}
}
/**
* 释放连接
* freeConnection
* @param conn
*/
public static void freeConnection(Connection conn){
if(conn != null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
PoolManager pool1 = PoolManager.getInstance();
PoolManager pool2 = PoolManager.getInstance();
if(pool1 == pool2){
System.out.println(true);
}else{
System.out.println(false);
}
}
}
6。获取连接的方法
Connection conn = PoolManager.getInstance().getConnection();
分享到:
相关推荐
项目实用的proxool连接池配置文件,每个标签都有注释,可以直接拿来使用
### Proxool连接池配置详解 #### 一、概述 Proxool是一个开源的轻量级Java数据库连接池实现,其主要目标是替代常见的数据库连接池解决方案,如C3P0或DBCP,并且提供了更加灵活和易于配置的特性。在实际应用中,...
本篇将详细介绍如何在Hibernate中配置Proxool连接池。 首先,我们需要在Spring的配置文件`applicationContext.xml`中设置SessionFactory Bean。SessionFactory是Hibernate的核心组件,它负责创建Session对象,而...
下面将详细讲解Proxool连接池的使用方法及其核心概念。 1. **Proxool简介** Proxool是Apache软件基金会的一个开源项目,它提供了一个轻量级的数据库连接池实现。Proxool通过创建一个数据库连接池来管理数据库连接...
2. **使用说明**:这份文档详细阐述了如何在Proxool连接池配置中使用加密的用户名和密码。它可能涵盖了以下步骤: - **加密过程**:说明如何使用提供的jar文件对数据库的用户名和密码进行加密,生成可以安全存储的...
-- 连接池的别名 --> <alias>DBPool</alias> - <!-- proxool只能管理由自己产生的连接 --> <driver-url>jdbc:sqlserver://localhost:1433;dataBaseName=books</driver-url> - <!-- JDBC驱动程序 --> ...
**Hibernate Proxool连接池配置详解** 在Java应用程序中,数据库连接池是管理数据库连接的一种高效方式,它可以显著提升系统性能,减少数据库资源的浪费。本文将深入探讨Hibernate与Proxool连接池的配置,以及在...
下面我们将深入探讨基于SSH的Proxool连接池配置。 首先,配置环境:MyEclipse5.5,Windows 2003操作系统,Oracle和MySQL数据库。在这样的环境中,Proxool连接池可以帮助我们更高效地管理数据库连接,提高应用程序的...
标题与描述均聚焦于“Proxool连接池配置”,这一主题是Java开发中数据库连接管理的重要环节。Proxool作为一款轻量级的开源数据库连接池实现,它提供了高效的数据库连接管理和复用机制,旨在减少应用程序创建和销毁...
Proxool连接池使用方法 首先, 你要把下载 proxool 的 lib 下面所有的 jar 文件, 放到 WEB-INF/lib 下面, 另外, 把你的 jdbc driver 也放到相同的 lib,
本篇文章将深入探讨Proxool数据库连接池的配置及其重要性。 首先,理解Proxool的基本概念是必要的。Proxool是Proxy + Pool的组合,它通过代理(Proxy)机制来管理数据库连接,使得应用程序可以透明地使用连接池。...
在本压缩包中,包含的是与Proxool连接池相关的MySQL驱动jar包,这将有助于在Java应用程序中建立与MySQL数据库的连接。 首先,我们来深入理解一下Proxool连接池。Proxool的核心功能是创建一个池化的数据库连接集合,...
3. 初始化连接池:在应用启动时加载配置,并初始化Proxool连接池。 4. 获取和释放连接:在需要访问数据库时,从连接池中获取连接;完成操作后,记得释放回连接池,而不是直接关闭。 5. 监控和诊断:定期检查Proxool...
在描述中提到的“连接池配置文件”,通常是指像`proxoolconf.xml`这样的文件,其中包含了Proxool连接池的配置参数。这些参数包括但不限于: 1. **poolName**:唯一标识连接池的名称,方便管理和调试。 2. **...
总结起来,这个案例涵盖了SSH2安全通信、Java注解简化配置、Proxool连接池优化数据库访问,以及SF4J的日志记录,这些都是Java开发中不可或缺的技术组件。通过学习和理解这个案例,开发者可以提升在构建安全、高效、...
下面将详细讲解Proxool连接池的工作原理、配置方法以及在Tomcat中的使用。 ### 1. Proxool简介 Proxool是一个基于代理的数据库连接池,它通过创建数据库连接的虚拟池来实现连接复用,从而提高系统的运行效率。...
2. **连接池配置(Pool Configuration)**:开发者可以通过配置文件或者代码来定义连接池的参数,如最大连接数、最小连接数、空闲连接存活时间等,以满足不同应用场景的需求。 3. **代理连接(Proxy Connection)**...
Spring2.5配置proxool连接池