• 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 + "| ");
    }
    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>

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

  • 相关阅读:
    cocos2d-x 3.0rc开发指南:Windows下Android环境搭建
    CSS 最核心的几个概念
    android CMWAP, CMNET有何差别
    JAVA读、写EXCEL文件
    freemarker报错之三
    “大型票务系统”和“实物电商系统”在支付方面的差别和联系
    C++内存泄露检測原理
    递归算法浅谈
    自写图片遮罩层放大功能jquery插件源代码,photobox.js 1.0版,不兼容IE6
    linux 之 getopt_long()
  • 原文地址:https://www.cnblogs.com/xubiao/p/5483814.html
Copyright © 2020-2023  润新知