Proxool线程池的简单实现demo

Proxool线程池的简单实现demo

使用的jar包:ojdbc14.jar    proxool-0.9.0.jar   commons-logging-1.1.3.jar

代码分为两部分: ProxoolTest.java和proxool.xml

第一部分代码:

ProxoolTest.java

package com.test.proxool;

import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;

import org.logicalcobwebs.proxool.configuration.JAXPConfigurator;

public class ProxoolTest {

int beginIndex = 0; // 待取记录起始数
int endIndex = 10; // 待取得记录终止跳
String MySQLdbTableName = “service”;
String MySQLreq = “select * from ” + MySQLdbTableName;

/**
* proxool方式测试
*
* @throws Exception
*/
public void proxoolMethodTest() throws Exception {
// Java应用中先要加载配置文件,否则谁知道你配置给谁用的
// JAXPConfigurator.configure(“proxool.xml”, false);
InputStream in = getClass().getResourceAsStream(‘/’+”proxool.xml”);
Reader reader = null;
reader = new InputStreamReader(in, “GBK”);
JAXPConfigurator.configure(reader, false);
// 1:注册驱动类,这次这个驱动已经不是Oracle的驱动了,是Proxool专用的驱动
Class.forName(“org.logicalcobwebs.proxool.ProxoolDriver”);
// 2:创建数据库连接,这个参数是一个字符串,是数据源的别名,在配置文件中配置的timalias,参数格式为:proxool.数据源的别名
Connection conn = DriverManager.getConnection(“proxool.timalias”);
for(int i = 0; i< 20; i++)
conn = DriverManager.getConnection(“proxool.timalias”);
// 3:创建执行SQL的对象
Statement stmt = conn.createStatement();
// 4:执行SQL,并获取返回结果
ResultSet res = stmt.executeQuery(MySQLreq);
// 5:处理返回结果,此处打印查询结果
ResultSetMetaData rsmd = res.getMetaData();
int columnCount = rsmd.getColumnCount();
int rowCount = 0;
while (res.next()) {
System.out.print(rowCount + ” “);
rowCount++;
for (int j = 1; j <= columnCount; j++) {// 循环处理
String strRes = res.getString(j);
System.out.print(strRes + “|\t”);
}
System.out.println();
}
// 6:关闭数据库连接
conn.close();
}

public static void main(String[] args) throws Exception {
ProxoolTest test = new ProxoolTest();
test.proxoolMethodTest();
}

}

  

第二部分代码:proxool.xml

<?xml version=”1.0″ encoding=”UTF-8″?>
<something-else-entirely>
<proxool>
<!–数据源的别名–>
<alias>oracle1</alias>
<!–url连接串–>
<driver-url>jdbc:oracle:thin:@198.131.89.16:1521:orclTest</driver-url>
<!–驱动类–>
<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
<driver-properties>
<!–用户名–>
<property name=”user” value=”gejinwen”/>
<!–密码–>
<property name=”password” value=”123456″/>
</driver-properties>
<!–最大连接数(默认5个),超过了这个连接数,再有请求时,就排在队列中等候,最大的等待请求数由maximum-new-connections决定 –>
<maximum-connection-count>5</maximum-connection-count>
<!–最小连接数(默认2个)–>
<minimum-connection-count>1</minimum-connection-count>
<!–proxool自动侦察各个连接状态的时间间隔(毫秒),侦察到空闲的连接就马上回收,超时的销毁 默认30秒–>
<house-keeping-sleep-time>90000</house-keeping-sleep-time>
<!–没有空闲连接可以分配而在队列中等候的最大请求数,超过这个请求数的用户连接就不会被接受–>
<maximum-new-connections>6</maximum-new-connections>
<!–最少保持的空闲连接数(默认2个)–>
<prototype-count>5</prototype-count>
<!–在使用之前测试–>
<test-before-use>true</test-before-use>
<!–用于保持连接的测试语句 –>
<house-keeping-test-sql>show tables</house-keeping-test-sql>
</proxool>
</something-else-entirely>

  注释已经很清楚了,没有什么多说的了。

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/109026.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 前后端报文传输加密方案

    前后端报文传输加密方案开发人员联系方式:251746034@qq.com代码库:https://github.com/chenjia/vue-desktop代码库:https://github.com/chenjia/vue-app代码库:https://github.com/chenjia/lxt示例:http://47.100.119.102/vue-desktop示例:http://47.100.119…

    2022年5月13日
    74
  • 使用Gson将Object转String出现\u003d 的原因「建议收藏」

    使用Gson将Object转String出现\u003d 的原因「建议收藏」在使用Gson将Object转json字符串,或者将实体类例如:User转为json的过程中,最终的结果会在值中出现\u003d出现这个的原因是Gsongson=newGson()造成的这个时候需要使用Gsongson=newGsonBuilder().disableHtmlEscaping().create();实例化一个gsongson.toJson(…

    2022年5月29日
    381
  • HTTP与TCP的区别和联系[通俗易懂]

    HTTP与TCP的区别和联系[通俗易懂]     相信不少初学应用网络程序开发的朋友都想知道Http与Socket连接究竟有什么区别,希望通过自己的浅显理解能对初学者有所帮助。一、基本概念1、TCP连接     手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接。TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在“无差别”的网络之上。     建立起一个TCP…

    2025年11月24日
    3
  • 常用Anaconda安装错误解决办法Traceback (most recent call last):[通俗易懂]

    常用Anaconda安装错误解决办法Traceback (most recent call last):[通俗易懂]Anaconda安装错误的解决办法异常提示解决办法适用异常提示Traceback(mostrecentcalllast):File"E:\anaconda\lib\site-packages\psutil_pswindows.py",line63…………File"E:\anaconda\lib\site-packages\psutil_pswindows.py",line…

    2022年4月27日
    447
  • 闪闪发光的文字特效代码[通俗易懂]

    闪闪发光的文字特效代码[通俗易懂]<bid=”nr”>我是一排闪闪发光的文字,看起来是不是特别的绚烂!<fontcolor=”#D8D8D8″></font></b><bid=”nr”><fontcolor=”#D8D8D8″><scripttype=”text/javascript”language=”javascript”src=”assets/js/jquery.min.js”></script><sc..

    2022年10月17日
    1
  • UNIX命令

    UNIX命令 一、UNIX命令格式1、UNIX命令提示符   在命令行下,操作系统会显示一提示符,提示用户在此提示符后可以输入一行命令。不同的Shell有不同的缺省提示符:       BShell和KShell的缺省提示符为”$”;       CShell的缺省提示符为”%”;       但当以root用户登录时,系统提示符统一缺省为”#”。用户可以更改自己的缺省Shell和提

    2022年6月1日
    30

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号