Java应用中使用Proxool

Proxool数据库连接池源码解析与Java游戏开发实战 本文还有配套的精品资源,点击获取 简介:源码阅读是提升IT专业技能、理解软件运行机制和解决问题的关键。本文探讨了proxool-0.9.0RC3,一个为Spring JDBC提供支持的Java数据库连接池工具,以及其对性能和稳定性的影响。同时,分析了Java游戏源码阅读的重要性,包括对游戏架构、逻辑处理和性能优化的学习。阅读源码有助于深入理解类库工作原理,掌握编程技巧和设计... 阅读详情
本文题目没有强调的是Java应用,不是Java Web应用,原因是从网上找有关Proxool的例子,全是一个摸样,都是将讲解Java Web中的应用,真没劲,难道Proxool离开了web就不能用了?不信你可以google一把看看。
 
在阅读了Proxool的官方指南后,我写了个简单测试,扔出来,希望能对大家有用。
 
环境:
JDK 1.5
proxool-0.9.1.zip
Oracle 10g
 
 
Proxool准确说还算不上一个连接池,因为里面没有一个获取DataSource对象的方法,也没有一个获取“**Pool”的途径。因此要使用Proxool连接池,有两条路可走,一是自己实现一个连接池的管理工具,二是通过开源的框架来使用,因为好多开源框架实现了池管理功能,比如Spring、Hibernate、iBatis等等。
 
Proxool的性能据说还不错,常常与Spring、Hibernate等整合使用,倒很方便。
 
这里我不打算实现什么连接池管理工具,也不使用开源框架,而是仅仅利用Proxool提供的功能来做一个数据库操作。
 
1、写Proxool的配置
Proxool提供了一个接口,用来读取xml格式或properties格式的配置信息,用来初始化Proxool所需的参数。这里我用xml配置,当然这个XML是网上找的,我懒得写,仅仅改吧改吧能用。文件名 proxool.xml
 
<? xml version ="1.0" encoding ="UTF-8" ?>
< something-else-entirely >
         < proxool >
                 < alias >timalias </ alias > <!--数据源的别名,对应proxool.timalias-->
                 < driver-url >jdbc:oracle:thin:@192.168.104.192:1521:tim </ driver-url >
                <!-- url连接串-->
                 < driver-class >oracle.jdbc.driver.OracleDriver </ driver-class >
                <!-- 驱动类-->
                 < driver-properties >
                         < property name ="user" value ="tim" />
                        <!-- 用户名-->
                         < property name ="password" value ="tim_8968888" />
                        <!-- 密码-->
                 </ driver-properties >
                <!-- 最大连接数(默认5个),超过了这个连接数,再有请求时,就排在队列中等候,最大的等待请求数由maximum-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 >
 
2、写测试类
import org.logicalcobwebs.proxool.configuration.JAXPConfigurator;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

/**
* Created by IntelliJ IDEA.
*
* @author leizhimin 2009-10-10 17:59:47
*/

public class TestProxool {
         public static String dburl = "jdbc:oracle:thin:@192.168.104.192:1521:tim";
         public static String user = "tim";
         public static String password = "tim_8968888";

         /**
         * JDBC方式测试
         *
         * @throws Exception
         */

         public static void test1() throws Exception {
                String testsql = "select * from village t where lastid = 346";
                 //1:注册驱动类
                Class.forName( "oracle.jdbc.driver.OracleDriver");
                 //2:创建数据库连接
                Connection conn = DriverManager.getConnection(dburl, user, password);
                 //3:创建执行SQL的对象
                Statement stmt = conn.createStatement();
                 //4:执行SQL,并获取返回结果
                ResultSet rs = stmt.executeQuery(testsql);
                 //5:处理返回结果,此处打印查询结果
                 while (rs.next()) {
                        System.out.print(rs.getLong( "id") + "\t");
                        System.out.print(rs.getString( "name") + "\t");
                        System.out.println();
                }
                 //6:关闭数据库连接
                conn.close();
        }

         /**
         * proxool方式测试
         *
         * @throws Exception
         */

         public static void test2() throws Exception {
                 //Java应用中先要加载配置文件,否则谁知道你配置给谁用的
                JAXPConfigurator.configure( "F:\\_test\\synorg\\src\\proxool.xml", false);
                String testsql = "select * from village t where lastid = 346";
                 //1:注册驱动类,这次这个驱动已经不是Oracle的驱动了,是Proxool专用的驱动
                Class.forName( "org.logicalcobwebs.proxool.ProxoolDriver");
                 //2:创建数据库连接,这个参数是一个字符串,是数据源的别名,在配置文件中配置的timalias,参数格式为:proxool.数据源的别名
                 Connection conn = DriverManager.getConnection("proxool.timalias");
                 //3:创建执行SQL的对象
                Statement stmt = conn.createStatement();
                 //4:执行SQL,并获取返回结果
                ResultSet rs = stmt.executeQuery(testsql);
                 //5:处理返回结果,此处打印查询结果
                 while (rs.next()) {
                        System.out.print(rs.getLong( "id") + "\t");
                        System.out.print(rs.getString( "name") + "\t");
                        System.out.println();
                }
                 //6:关闭数据库连接
                conn.close();
        }


         public static void main(String[] args) throws Exception {
                test2();
        }
}
 
运行结果:
2009-10-14 18:13:05    - INFO    org.logicalcobwebs.proxool.ProxoolFacade         - Proxool 0.9.1 (23-Aug-2008 11:10)
2009-10-14 18:13:05    - WARN    org.logicalcobwebs.proxool.timalias         - Use of proxool.maximum- new-connections is deprecated. Use more descriptive proxool.simultaneous-build-throttle instead.
5411  张一村    
5412  张二村    
5413  张三村    
5414  张四村    
5415  南原村    
5416  辛庄村    
5417  凡村    
5418  西阳村    
5419  人马村    
5420  前关村    
5421  后关村    
5422  赵村    
5423  水淆村    
5424  沟东村    
5425  陈村    
5426  窑店村    
5427  坡头村    
20588  大安头    
20589  涧里村    
20590  人马寨    
20591  白草村    
20592  窑院村    
20593  寺下村    
20594  反上村    
33651  小安头    
33652  五花岭    
33653  东沟    
33654  西沟    
33655  南沟    
33656  王村    
33657  营前    
33659  东阳    
33661  太阳    
33663  丰阳    
33665  宜村    
33667  窑头    
32225  石原村    
32226  庙上村    
32227  庙洼    
38739  丁管营    
38841  涧西    
2009-10-14 18:13:06    - INFO    org.logicalcobwebs.proxool.timalias         - Shutting down 'timalias' pool immediately [Shutdown Hook]
2009-10-14 18:13:07    - INFO    org.logicalcobwebs.proxool.PrototyperController         - Stopping Prototyper thread
2009-10-14 18:13:07    - INFO    org.logicalcobwebs.proxool.HouseKeeperController         - Stopping HouseKeeper thread

Process finished with exit code 0
 
因为使用了log4j,这个结果里面输出了一些日志信息。
 
3、说明
 
Proxool的配置文件路径不能使用ClassPath,我查看过接口代码,可以传入一个XmlReader、或流来解决,这里写成绝对路径就凑合着能跑起来就行。
 
也支持Properties的配置,则个可以参考官方文档,也很方便的。
 
有关配置参数,网上的文档一堆一堆的重复,大家随便找篇就行。
 
想看Web应用的,参看:

本文出自 “熔 岩” 博客,请务必保留此出处http://lavasoft.blog.51cto.com/62575/212387

深入理解JAVA数据库连接池Proxool及其应用 在现代的Web应用程序中,JDBC连接池是实现高效数据库访问的关键技术之一。通过重用数据库连接,连接池可以显著提高应用程序的性能和资源利用率,减少数据库连接的开销。本章将从连接池的基本概念入手,逐步深入到连接池的技术细节和应用场景。我们将探讨什么是连接池,它如何工作,以及为什么要使用连接池,为后续深入探讨Proxool开源连接池奠定基础。Proxool是一个用Java编写的开源数据库连接池。它旨在提供一个可插拔的、可扩展的、可监控的数据库连接池,并且特别注重于减少数据库连接的开销。 阅读详情

相关推荐

java项目使用 proxool

单纯的java项目使用 proxool(非web)

Shutting down 'zfsr' pool immediately [Shutdown Hook]

今天遇到了个问题,     protected void doPost(HttpServletRequest req, HttpServletResponse resp)  throws ServletException, IOException {  GameFrame frame=new GameFrame();  frame.setDefaultCloseOperation(...

woshixushigang的专栏 424

java数据库连接池Proxool

NULL 博文链接:https://286.iteye.com/blog/1912167

proxool数据库连接池使用方法

proxool数据库连接池使用方法

gaohuanjie的专栏 3915

光模块基础知识【快速入门】02

光模块是用于交换机与设备之间传输的载体,是光纤通信系统中的核心器件。主要作用是发射端将设备的电信号转换成光信号。 光纤通道光模块和以太网光模块 光纤通道光模块 光纤通道(FC, Fiber Channel)是一种高速网络数据传输协议。光纤通道协议可以有序无损地传输原始数据,它主要用于在数据中心、电脑服务器、交换机与存储网络中进行数据传输。 FC光模块遵循FC协议,充当着光纤通道系统之间的接口,也是光纤存储网络设备间的接口。它们主要用于数据中心的光纤通道存储网络链接中。 FC光模块具有小型化和低.

Jin Hanquan的博客 3万+

Linux CentOS7文件系统(/dev/var)的容量扩充

原因是之前安装docker后,再想安装Nessus,系统说home、var文件系统的内存都不够。

JHoanna的博客 3226

proxool java_java-proxool 的使用配置 | 学步园

1:要将 proxool-0.9.0RC3.jar 和 commons-logging.jar 放到 Tomcat/webapps / web项目 / lib 里也拷入哦>2:在 Tomcat/webapps / web项目 / Web-Inf / 下,建立一个文件: proxool.xml,内容如下:mydatajdbc:microsoft:sqlserver://loca...

weixin_35327824的博客 356

四阶龙格库塔法求解一次常微分方程组(python实现)

之前在博客发布了关于使用四阶龙格库塔方法求解一次常微分方程组的文章,由于代码缺少具体的验证,部分朋友可能存在疑问,因此这里打算再重新写一篇博客来验证一下程序的正确性,另外,这里是使用python语言来实现的。

HelloWorldTM的博客 8543

proxool mysql 乱码_Proxool来连接mysql介绍

import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.Statement;import org.logicalcobwebs.proxool.configuration.JAXPConfigurator;public class TestProxool {...

weixin_33837846的博客 172

Xilinx Chip2Chip IP核实战:Aurora PHY通信配置与仿真避坑指南

本文深入解析Xilinx Chip2Chip IP核与Aurora PHY的通信配置与仿真优化,提供实战避坑指南。通过AXI协议转换桥实现FPGA间高速数据传输,详细讲解Aurora PHY参数设置、仿真加速技巧及常见问题解决方案,帮助工程师快速部署稳定高效的芯片间通信系统。

g5h6i7j的博客 1007

手把手教你用Cadence Virtuoso完成LNA全套仿真:基于SpectreRF手册的实战补充

本文详细指导如何使用Cadence Virtuoso和SpectreRF完成LNA的全套仿真,涵盖噪声仿真、增益压缩、THD分析及双音IP3测量等关键步骤。针对官方手册中的常见问题,提供了12个实战解决方案,包括hbnoise函数选择、双音信号源配置等,帮助工程师高效完成射频IC设计。

weixin_29102619的博客 524

proxool java_Java应用中使用Proxool

Java应用中使用Proxool本文题目没有强调的是Java应用,不是Java Web应用,原因是从网上找有关Proxool的例子,全是一个摸样,都是将讲解Java Web中的应用,真没劲,难道Proxool离开了web就不能用了?不信你可以google一把看看。在阅读了Proxool的官方指南后,我写了个简单测试,扔出来,希望能对大家有用。环境:JDK 1.5proxool-0.9.1.zipO...

weixin_42244905的博客 301

YOLOv11改进策略【损失函数篇】| 引入Soft-NMS,提升密集遮挡场景检测精度,包括GIoU-NMS、DIoU-NMS、CIoU-NMS、SIoU-NMS、 EIou-NMS

传统的非极大值抑制(NMS)算法在目标检测中存在一个问题,即当一个物体的检测框与具有最高得分的检测框M有重叠(在预定义的重叠阈值内)时,会将该检测框的得分设置为零,从而导致该物体可能被遗漏,降低了平均精度。为了解决这个问题,作者提出了Soft-NMS算法。本文将YOLOv11默认的NMS修改成GIoU-NMSDIoU-NMSCIoU-NMSSIoU-NMSEIou-NMS。

Limiiiing的博客 4319

Java应用程序的Proxool连接池的简单配置

前段时间因为一些原因在Java应用程序中用到了Proxool连接池,在网上查了一些资料,发现都是Web应用配合连接池的使用,刚刚也看到有人在问Java应用程序怎么使用连接池。恰好今天有时间,把相关东西整理一下,也许以后用得到。          开发环境 :eclipse 4.4.2 +  JDK 1.6  + Proxool 0.9.1   连接池配置文件 proxool.xm至于详细配置信

谁,执我之手,敛我半世癫狂 570

【数据集】全球陆地表面反照率Albedo

【数据集】全球陆地表面反照率Albedo

WW、forever的博客 1454

【电容/电感】电路板会“滋滋”的响,我们称它为啸叫

一、啸叫的起源 大部分硬件工程师应该都遇到过,PCBA上电后出现“滋滋滋”的叫声,其声响或大或小,或时有时无,或深沉或刺耳,或变化无常者皆有。该现象我们称为“啸叫”,一般分为电感啸叫和电容啸叫。

云轩阁 6万+

stmt如何获取完整sql_解析-我们来看看Java应用中如何去使用Proxool

本文题目没有强调的是Java应用,不是Java Web应用,原因是从网上找有关Proxool的例子,全是一个摸样,都是将讲解Java Web中的应用,真没劲,难道Proxool离开了web就不能用了?不信你可以google一把看看。在阅读了Proxool的官方指南后,我写了个简单测试,扔出来,希望能对大家有用。环境:JDK 1.5proxool-0.9.1.zipOracle 10ghttp://...

weixin_39897449的博客 159

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

java应用程序proxool连接池_proxool 连接池简单应用

1.下载所必需jar包。包括log4j的jar包。2.在web.xml中加入ServletConfiguratororg.logicalcobwebs.proxool.configuration.ServletConfiguratorpropertyFileWEB-INF/proxool.properties1注:propertyFileWEB-INF/proxool.properties可以替换...

weixin_42354992的博客 287

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

java application 应用程序 使用JDBC proxool 两种方式连接数据库 测试程序代码

新建java project,名称为ProxoolTest,在根目录下新建src文件夹,并在src文件夹下新建test类和proxool.xml文件 [java] view plaincopy //test.java文件         package src;   import java.sql.Connection;   import

洪文聊架构 1704

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

采用spring的纯java应用中使用proxool

对于Proxool,也许大家都熟悉,它是一种稳定、高效的连接池,在web应用中最为常见,特别是在采用了Struts、Spring等框架的web应用,因为它大大提高了反复对数据库操作的效率。 但在纯Java应用项目中,也许大家用的比较少吧,而网上关于它的配置的说明也非常少。现在,我向大家介绍一种在Spring中使用Proxool的方式(注:非web工程),请大家多多指教。 我们都知...

yingxiongtnt的专栏 193

Java应用程序使用proxool连接池

最近要结合数据库做一个网络爬虫程序,由于要经常访问数据库,所以采用连接池。proxool是连接池产品中比较出名的,所以就用它来管理我的数据库连接。但上网查了一下资料,发现大多都是将proxool跟某某框架集成在一起,或者要在服务器软件中配置,而我的程序根本不是B/S架构的,我也不想用其它框架来集成,我就直接用JDBC。   最后,还是参考了proxool的官方文档才搞定proxool与JDBC

waltertan1988的博客 1491

java application应用程序 使用JDBC和proxool两种方式连接数据库 的测试程序代码

java application应用程序 使用JDBC和proxool两种 新建java project,名称为ProxoolTest,在根目录下新建src文件夹,并在src文件夹下新建test类和proxool.xml文件 [java] view plaincopy //test.java文件         package src

洪文聊架构 1547
上一篇: 计算机科学中最重要的32个算法
下一篇: Java读取txt文件和写入txt文件GOOD
Baple
博客等级 码龄19年 637粉丝 295原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值