proxool连接池的实现

proxool连接池所需的jar包 proxool-0.9.1.jar 和 proxool-cglib.jar 立即下载
作为开源的连接池Proxool
有以下优点。
透明性   可以明的添加接连池而不影响你原来的项目的JDBC代码;
开放性 你可以方便的与其它的开源产品进行整合。如hibernate  中自带的这个Proxool
标准性 它是在J2SE下开出来的。你可以放心的开发
易用性  非常容易 的进行配置。
proxool是一个非常强大的连接池工具包,我觉得相比dbcp、c3p0这两个连接池包都要好用,我用loadrunner测试过,这三个连接池的从性能上排名如下:proxool>c3p0>dbcp,特别是dbcp在大并发的情况下总是出现各种异常。

下面是实现proxool的几种方式:

JDBC连接方法:
首先建一个proxool的配置文件proxool.xml

proxool.xml 代码
xml 代码

<!--sp-->xml version="1.0" encoding="UTF-8"?>    
  
<!-- the proxool configuration can be embedded within your own application's. Anything outside the "proxool" tag is ignored. -->    
  
<something-else-entirely>  
    <proxool>  
        <!--连接池的别名-->  
        <alias>DBPool</alias>  
        <!--proxool只能管理由自己产生的连接-->  
        <driver-url>jdbc:oracle:thin:@192.168.0.40:1521:drcom</driver-url>  
        <!--JDBC驱动程序-->  
        <driver-class>oracle.jdbc.driver.OracleDriver</driver-class>  
        <driver-properties>  
            <property name="user" value="drcom"/>  
            <property name="password" value="drcom"/>  
        </driver-properties>  
        <!-- proxool自动侦察各个连接状态的时间间隔(毫秒),侦察到空闲的连接就马上回收,超时的销毁-->  
        <house-keeping-sleep-time>90000</house-keeping-sleep-time>  
        <!-- 指因未有空闲连接可以分配而在队列中等候的最大请求数,超过这个请求数的用户连接就不会被接受-->    
        <maximum-new-connections>150</maximum-new-connections>  
        <!-- 最少保持的空闲连接数-->    
        <prototype-count>3</prototype-count>  
        <!-- 允许最大连接数,超过了这个连接,再有请求时,就排在队列中等候,最大的等待请求数由maximum-new-connections决定-->    
        <maximum-connection-count>100</maximum-connection-count>  
        <!-- 最小连接数-->  
        <minimum-connection-count>3</minimum-connection-count>  
    </proxool>  
</something-else-entirely>  

再在web.xml中进行配置,其中的ServletConfigurator是装载WEB-INF目录下的proxool.xml,并设置为Tomcat启动时就加载。Admin这个Servlet是proxool提供的察看连接池的信息的工具,


web.xml 代码
xml 代码

<!--sp-->xml version="1.0" encoding="UTF-8"?>  
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"  
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee    
    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">  
    <servlet>  
        <servlet-name>ServletConfigurator</servlet-name>  
        <servlet-class>  
            org.logicalcobwebs.proxool.configuration.ServletConfigurator    
        </servlet-class>  
        <init-param>  
            <param-name>xml</Fileparam-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>Adminservlet-name>  
        <url-pattern>/adminurl-pattern>  
    </servlet-mapping>  
    <servlet>  
        <servlet-name>TestServlet</servlet-name>  
        <servlet-class>  
            selfservice.TestServlet    
        </servlet-class>  
    </servlet>  
    <servlet-mapping>  
        <servlet-name>TestServlet</servlet-name>  
        <url-pattern>/TestServlet</url-pattern>  
    </servlet-mapping>  
</web-app>  


以上配置完成后,第三步就可以创建一个连接池的类了


java 代码

package selfservice;        
      
import java.sql.Connection;        
import java.sql.DriverManager;        
import java.sql.ResultSet;        
import java.sql.SQLException;        
import java.sql.Statement;        
      
import org.logicalcobwebs.proxool.ProxoolException;        
import org.logicalcobwebs.proxool.ProxoolFacade;        
import org.logicalcobwebs.proxool.admin.SnapshotIF;        
      
      
public class PoolManager {        
            
    private static int activeCount = 0;        
            
            
    public PoolManager(){        
                
    }          
    /**      
     * 获取连接      
     * getConnection      
     * @param name      
     * @return      
     */      
    public Connection getConnection() {        
        try{        
            Class.forName("org.logicalcobwebs.proxool.ProxoolDriver");//proxool驱动类        
            Connection conn = DriverManager.getConnection("proxool.DBPool");    
           //此处的DBPool是在proxool.xml中配置的连接池别名      
            showSnapshotInfo();        
                    
            return conn;        
        }catch(Exception ex){        
            ex.printStackTrace();        
        }        
        return null;        
    }        
    /**      
     * 此方法可以得到连接池的信息      
     * showSnapshotInfo      
     */      
    private void showSnapshotInfo(){        
        try{        
            SnapshotIF snapshot = ProxoolFacade.getSnapshot("DBPool", 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();        
        }        
    }        
    /**      
     * 获取连接      
     * getConnection      
     * @param name      
     * @return      
     */      
    public Connection getConnection(String name){        
        return getConnection();        
    }        
    /**      
     * 释放连接      
     * freeConnection      
     * @param conn      
     */      
    public void freeConnection(Connection conn){        
        if(conn!=null){        
            try {        
                conn.close();        
            } catch (SQLException e) {                      
                e.printStackTrace();        
            }        
        }        
    }        
    /**      
     * 释放连接      
     * freeConnection      
     * @param name      
     * @param con      
     */      
    public void freeConnection (String name,Connection con){        
        freeConnection(con);        
    }        
            
    public void getQuery() {                
        try {        
            Connection conn = getConnection();        
            if(conn != null){        
                Statement statement = conn.createStatement();        
                ResultSet rs = statement.executeQuery("select * from tblgxinterface");        
                int c = rs.getMetaData().getColumnCount();        
                while(rs.next()){                          
                    System.out.println();        
                    for(int i=1;i<=c;i++){        
                        System.out.print(rs.getObject(i));        
                    }        
                }        
                rs.close();        
            }        
            freeConnection(conn);        
        } catch (SQLException e) {                  
            e.printStackTrace();        
        }        
      
    }        
      
}      


就这样我们完成了一个连接池的功能。proxool的连接池我用loadrunner进行大并发的测试,性能还是很好的。

Hibernate中proxool连接池的方式:

首先步骤跟JDBC的连接池一样,也是新建一个proxool.xml配置文件,再在web.xml中配置,具体参考上面。
第二步在hibernate的配置文件hibernate.cfg.xml中配置proxool连接设置:


hibernate.cfg.xml代码
xml 代码

<property name="hibernate.connection.provider_class">org.hibernate.connection.ProxoolConnectionProvider</property>  
            <property name="hibernate.proxool.pool_alias">DBPool</property>  
            <property name="hibernate.proxool.xml">proxoolconf.xml</property>  

Spring中proxool连接池的方式:

首先布骤与JDBC的连接池一样,先建一个proxool.xml配置文件,再在web.xml中配置,具体参考上面的。
第二步在spring配置文件applicationContext.xml中配置proxool连接设置

applicationContext.xml代码
xml 代码

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" singleton="true">  
        <property name="driverClassName" value="org.logicalcobwebs.proxool.ProxoolDriver"/>  
        <property name="url" value="proxool.StatDBPool"/>  
    </bean>  
    <bean id="transactionManager"    
        class="org.springframework.jdbc.datasource.DataSourceTransactionManager">  
        <property name="dataSource">  
            <ref local="dataSource" />  
        </property>  
    </bean>    


这样spring就能得到一个dataSource的数据源。


proxool还有很多功能,我这只是简单的应用。具体请察看proxool用户指南。
Proxool连接池使用方法 Proxool连接池使用方法 首先, 你要把下载 proxool 的 lib 下面所有的 jar 文件, 放到 WEB-INF/lib 下面, 另外, 把你的 jdbc driver 也放到相同的 lib, 立即下载

相关推荐

proxool连接池配置详解

proxool连接池配置详解 proxool连接池配置详解 proxool连接池配置详解 proxool连接池配置详解 proxool连接池配置详解 proxool连接池配置详解

proxool连接池

Spring一、Proxool连接池简介及其配置属性概述  Proxool是一种Java数据库连接池技术。是sourceforge下的一个开源项目,这个项目提供一个健壮、易用的连接池,最为关键的是这个连接池提供监控的功能,方便易用,便于发现连接泄漏的情况。目前是和DBCP以及C3P0一起,最为常见的三种JDBC连接池技术。日前,Hibernate官方宣布由于Bug太多不再支持DBCP,而推荐使...

accphc的专栏 507

proxool连接池使用详细说明

proxool连接池使用详细说明,proxool连接池使用详细说明,proxool连接池使用详细说明。

数据连接池——proxool

这个proxool连接池弄了很久,网上的资料大多不全,或者都是在将怎么配置,怎么用的说的很少或是太复杂了不容易懂 来说说proxool这个连接池:这个连接池最大的特点就是能够监视连接池的情况,及时发现数据溢出之类的问题 建立proxool连接池的步骤: 1.导入jar包:proxool-0.9.1.2.jar   和   proxool-cglib.jar 2.配置PROXOOL文件,pr...

progammer10086的博客 333

S32DS使用手把手教程:从零实现CAN通信配置

深入讲解S32DS使用过程中如何从零开始配置CAN通信,涵盖关键步骤与实用技巧,帮助开发者快速上手S32DS使用中的常见问题与调试方法。

weixin_42405592的博客 1126

基于STM32的最简易蓝牙遥控小车

基于STM32的蓝牙遥控小车,基于HAL库编写代码,具有移动功能,读者可自行添加其他扩展功能。按下状态的对应关系:2前进,4左转,5停止,6右转,8后退,松开状态都是5,都选择16进制。首先按照小车的图纸把小车的机械部分装好。做这个小车的成本在200元左右,包括焊接设备,杜邦线等。

weixin_43469377的博客 1万+

proxool 配置

Proxool连接池设置【转】 2008-09-02 10:25 Proxool连接池是sourceforge下的一个开源项目,这个项目提供一个健壮、易用的连接池,最为关键的是这个连接池提供监控的功能,方便易用,便于发现连接泄漏的情况。开源项目地址是: http://proxool.sourceforge.net/ 配置连接池比较的简单: 1、将下载的包解开,从包中的lib目录下将prox...

jitaguizhao的博客 246

Altium Designer实战:手把手教你设计智能车竞赛疯狂电路组赛道(附封装库)

本文详细介绍了使用Altium Designer软件进行智能车竞赛“疯狂电路”组赛道设计的全流程实战指南。从理解比赛规则、搭建设计环境、创建专用元器件封装库,到电路布局、路径规划及设计输出验证,手把手教你高效完成符合计分标准的赛道图纸设计,并附上实用的封装库管理方法。

alice7model的博客 1321

proxool数据库连接池使用方法

proxool数据库连接池使用方法

gaohuanjie的专栏 3915

爆改YOLOv8 | PSA注意力机制融合入YOLOv8

yolov8,PSA注意力,即插即用

weixin_43986124的博客 2497

uniapp [安卓苹果App端] - 详细实现手机蓝牙连接打印机及打印票据小票/标签/面单/热敏小票订单/快递单等通用兼容适配解决方案,Uniapp对接蓝牙打印机支持各种主流品牌及打印指令,强悍插件

uni-app,安卓Android,苹果ios,安卓app端,苹果App端,uniapp苹果app,蓝牙打印机,uniappAPP实现通过蓝牙连接打印机打印,uniapp蓝牙连接打印机,安卓蓝牙打印插件,蓝牙打印机,蓝牙ble低功率及高功率打印机小票、标签、面单打印,手机PDA蓝牙打印插件,连接蓝牙打印机,蓝牙连接,打印文本、图片、条码、二维码,兼容斑马打印机、佳博打印机,TSC打印机,免费蓝牙打印机组件,蓝牙打印条码,蓝牙打印机连接,热敏蓝牙打印机,便携式打印机,打印机搜索不到,连接失败,发送打印命令

🏆 前端领域优质创作者 1万+

Proxool

 Proxool连接池是sourceforge下的一个开源项目,这个项目提供一个健壮、易用的连接池,最为关键的是这个连接池提供监控的功能,方便易用,便于发现连接泄漏的情况。开源项目地址是: http://proxool.sourceforge.net/ 配置连接池比较的简单:  1、将下载的包解开,从包中的lib目录下将proxool-xxx.jar(xxx随着不同的版本号变化)加入你的工程中

啊恒的专栏 3976

YOLOv8【第四章:注意力机制篇·第20节】一文讲透,注意力机制设计原则与选择指南 - 从原理到实践的系统化方法论!

🏆 本文收录于 《YOLOv8实战:从入门到深度优化》,该专栏持续复现网络上各种热门内容(全网YOLO改进最全最新的专栏,质量分97分+,全网顶流),改进内容支持(分类、检测、分割、追踪、关键点、OBB检测)。且专栏会随订阅人数上升而涨价(毕竟不断更新),当前性价比极高,有一定的参考&学习价值,部分内容会基于现有的国内外顶尖人工智能AIGC等AI大模型技术总结改进而来,嘎嘎硬核。    ✨ 特惠福利:目前活动一折秒杀价!一次订阅,永久免费,所有后续更新内容均免费阅读!

**My Coding Family** 896

Proxool实现数据库连接池的具体配置方法

首先从 http://proxool.sourceforge.net/ 下载proxool-0.9.1.zip 解压后,把proxool-0.9.1.jar,proxool-cglib.jar放到工程的lib文件夹里面。proxool是一个非常强大的连接池工具包,我觉得相比dbcp、c3p0这两个连接池包都要好用,这三个连接池的从 性能上排名如下:proxool&gt;c3p0&gt;dbc...

sdafasdfsadfsadf的博客 483

RK3568平台开发系列讲解:Linux wifi的调试

查询结果中state为ENABLE,表示hostapd程序启用成功。首先查看设备是否存在。

内核笔记 166

【MATLAB-app】系列教程(含视频)第4、5、6课:实战_制作简单的图像处理软件

写作时间: 2020-12-27 我的教程目录 第1课:初步了解appdesigner 第2课:学会制作一个计算器 第3课:学习更多的控件(重点!) 第4课:实例1:制作一个图像处理软件 第5课:学习APPdesigner的设计精髓,框架 第6课:结合使用多种控件,函数等,丰富我们的实例1 第7课:app设计打包,完成工程应用导出 标题: 第4课:我的实例_学会制作一个图像处理软件 本文目录: 1.先看看我之前的一个工程 2.常用的基本组件控件 3.最常用且实用的控件的用法 -3.1 editfilel

wind 4054

mybatis+proxool 实现第三方数据库连接池

mybatis不直接支持第三方的数据库连接池,需要自己建DataSourceFactory。 用到的jar:mybatis-3.0.4.jar、proxool-0.9.1.jar、proxool-cglib.jar等。 ProxoolDataSourceFactory.java代码如下: public class ProxoolDataSourceFactory implements Dat

xiaotom5的专栏 1824

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Proxool连接池实现

首先从 http://proxool.sourceforge.net/ 下载proxool-0.9.0RC2.zip解压后,把proxool-0.9.0RC2.jar放到工程的lib文件夹里面。proxool是一个非常强大的连接池工具包,我觉得相比dbcp、c3p0这两个连接池包都要好用,我用loadrunner测试过,这三个连接池的从性能上排名如下:proxool>c3p0>dbcp,特别是

lddongyu 870

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

proxool连接池的实现2

作为开源的连接池Proxool有以下优点 透明性   可以明的添加接连池而不影响你原来的项目的JDBC代码; 开放性 你可以方便的与其它的开源产品进行整合。如hibernate  中自带的这个Proxool 标准性 它是在J2SE下开出来的。你可以放心的开发 易用性  非常容易 的进行配置。 proxool是一个非常强大的连接池工具包,我觉得相比dbcp、c3p0这两个连接池包都

IT忍者神龟 622

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Spring+Hibernate+MySQL+Proxool 连接池实现

★ spring + hibernate + proxool + MySQL 连接池实现: ① proxool配置文件proxool.xml---                      Anything outside the "proxool" tag is ignored. -->                           DBPool

2327

连接池(Proxool实现)

1,在项目中的 WEB-INF 目录下建立 proxool.xml 文件(在其他目录也行,只要能找到就行),内容为:  15DayWeb jdbc:mysql://localhost:3306/15dayweb com.mysql.jdbc.Driver 2

yanick技术博客 3623

java 实现proxool oracle数据库连接池的使用

java 实现proxool oracle数据库连接池的使用本文针对已有项目(Spring+SpringMVC)框架,实现连接池的使用:步骤1:由于是Maven项目,在pom.xml中添加proxool依赖的jar包,如下:<!-- https://mvnrepository.com/artifact/com.cloudhopper.proxool/proxool --> <depe

lyw147258的博客 1107
上一篇: ECMAScript的世界,你认识几个?
下一篇: proxool 连接池配置属性说明
fableking
博客等级 码龄20年 35粉丝 54原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值