(Oracle功能篇) Oracle 数据库连接池

使用:proxool-0.9.1.zip


相关代码:

package yerasel;  
  
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 Test {  
  
    int beginIndex = 0; // 待取记录起始数  
    int endIndex = 10;  // 待取得记录终止跳  
    String MySQLdbTableName = "usrpsw";  
    String MySQLreq = "select * from " + MySQLdbTableName + " limit " + beginIndex + ", " + endIndex;  
      
    /** 
     * proxool方式测试 
     *  
     * @throws Exception 
     */  
    public void test2() throws Exception {  
        // Java应用中先要加载配置文件,否则谁知道你配置给谁用的  
        JAXPConfigurator  
                .configure("proxool.xml", false);  
          
          
          
        // 1:注册驱动类,这次这个驱动已经不是Oracle的驱动了,是Proxool专用的驱动  
        Class.forName("org.logicalcobwebs.proxool.ProxoolDriver");  
        // 2:创建数据库连接,这个参数是一个字符串,是数据源的别名,在配置文件中配置的timalias,参数格式为:proxool.数据源的别名  
        Connection conn = DriverManager.getConnection("proxool.mysql");  
        for(int i = 0; i< 20; i++)  
             conn = DriverManager.getConnection("proxool.mysql");  
        // 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 {  
        Test obj = new Test();  
        obj.test2();  
    }  
  
}  


编写相关的配置文件:

<?xml version="1.0" encoding="UTF-8"?>   
<something-else-entirely>   
        <proxool>   
                <alias>mysql</alias>   
                <!--数据源的别名-->   
                <driver-url>jdbc:mysql://127.0.0.1:3306/mysqlconn</driver-url>   
                <!--url连接串-->   
                <driver-class>com.mysql.jdbc.Driver</driver-class>   
                <!--驱动类-->   
                <driver-properties>   
                        <property name="user" value="root"/>   
                        <!--用户名-->   
                        <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>  


注意,在程序中发起了过多线程,目的就是检验线程限制是否有效。

数据库内容如下:


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值