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

本文介绍了如何在Java应用程序中配置和使用Proxool连接池,包括配置文件proxool.xml的内容,以及如何加载配置、获取数据库连接。示例代码展示了DbConn类的实现,用于连接和关闭数据库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       前段时间因为一些原因在Java应用程序中用到了Proxool连接池,在网上查了一些资料,发现都是Web应用配合连接池的使用,刚刚也看到有人在问Java应用程序怎么使用连接池。恰好今天有时间,把相关东西整理一下,也许以后用得到。

         开发环境 :eclipse 4.4.2 +  JDK 1.6  + Proxool 0.9.1

  连接池配置文件 proxool.xm至于详细配置信息以及各属性的作用,网上有详细说明,这里不再详细解释

<?xml version="1.0" encoding="UTF-8"?>
<something-else-entirely>  
    <proxool>
            <alias>Pool</alias>
            <driver-url>jdbc:mysql:///util</driver-url>
            <driver-class>com.mysql.jdbc.Driver</driver-class>
            <driver-properties>
                <property name="user" value="root"/>
                <property name="password" value="root"/>
            </driver-properties>
            <maximum-connection-count>100</maximum-connection-count>
            <minimum-connection-count>5</minimum-connection-count>
            <house-keeping-sleep-time>90000</house-keeping-sleep-time>
            <maximum-new-connections>10</maximum-new-connections>
            <prototype-count>10</prototype-count>
    </proxool>
</something-else-entirely> 
  加载驱动以及获得连接的DbConn类

package net.guang.dbpool.conn;

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

import org.logicalcobwebs.proxool.configuration.JAXPConfigurator;
/*
 * Get Connection
 */
public class DbConn {
    private static Connection conn;

    public static Connection getConn() {        
        try {            
            //Java应用中先要加载配置文件,否则谁知道你配置给谁用,此处不支持相对路径
            JAXPConfigurator.configure("D:\\eclipse\\eclipse_jee_workspace\\asiainfo\\dbutil\\src\\proxool.xml", false);
            //1:注册驱动类,这次这个驱动已经不是Oracle的驱动了,是Proxool专用的驱动
            Class.forName("org.logicalcobwebs.proxool.ProxoolDriver");
            //2:创建数据库连接,这个参数是一个字符串,是数据源的别名,在配置文件中配置的timalias,参数格式为:proxool.数据源的别名
            conn = DriverManager.getConnection("proxool.Pool");
            
        } catch (Exception e) {
            e.printStackTrace();
        }
        return conn ;
    }

    /*
     * 关闭结果集和连接
     * Close Connection
     */

    public void closeConn(ResultSet rs ,Connectionconn) {
        try {
            if (rs != null) {
                rs.close();
            }

        if (conn != null) {
               conn.close();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /*

    *测试和数据库连通性
     */
    public static void main(String[] args) {
       System.out.println(DbConn.getConn());    
    }
}

通过上面这个方法我们可以得到数据库的连接,其余的就和普通的JDBC操作数据库的方法一致

测试插入数据,这里我是使用了Apache的DbUtil,如果看不懂,可以采用JDBC的方式:

package net.guang.dbpool.model;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;

import net.guang.dbpool.conn.DbConn;

import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.ResultSetHandler;

public class DbModel {

    ResultSetHandler<Object[]> rsh = new ResultSetHandler<Object[]>() {
        public Object[] handle(ResultSet rs) throws SQLException {
            if (!rs.next()) {
                return null;
            }

            ResultSetMetaData meta = rs.getMetaData();
            int cols = meta.getColumnCount();
            Object[] result = new Object[cols];

            for (int i = 0; i < cols; i++) {
                result[i] = rs.getObject(i + 1);
            }

            return result;
        }
    };

    public void insertData() {
        try {
            // ProxoolDataSource ds = new ProxoolDataSource() ;
            // ds.setDriverUrl("jdbc:mysql://127.0.0.1:3306/util");
            // ds.setDriver("com.mysql.jdbc.Driver");
            // ds.setUser("root");
            // ds.setPassword("root");
            QueryRunner run = new QueryRunner();
            Connection conn = DbConn.getConn();
            Long l = System.nanoTime();
             String   sql = "insert into user (id,name,age,sex) value (" + i + ",'张三',23,'男')";
                run.update(conn, sql);
     
            System.out.println(System.nanoTime() - l);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        new DbModel().insertData();

    }
}

以上是Proxool连接池在Java应用程序的的简单配置,有错误欢迎看到的提出来

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值