首页 > 数据库

基于多线程的数据库连接池

时间:2009-06-02 23:03:29  作者:Seven  我要投稿
Linux初探欢迎您的投稿,投放方法请点击这里查看,我们会定期赠送精美小礼品给优秀的投稿作者。海纳百川 取则行远!LinuxGoo欢迎您的到来。
基于多线程的数据库连接池并支持两种数据库 mssql 和 mysql:1、ConnectPoool.java-------------------------------------->> ConnectPoool.java>>>>>>>>>>>>>---......

基于多线程的数据库连接池

并支持两种数据库 mssql 和 mysql:

1、ConnectPoool.java

-------------------------------------->> ConnectPoool.java>>>>>>>>>>>>>---------------------------------------------

package com.sinrow.epm.db;

import java.sql.*;
import java.util.*;
import java.io.*;

/**
* <p>
* Title:数据库连接池
* </p>
* <p>
* Description:本连接池支持对失效连接重连、重建连接池,并监控调用者及调用时间
* 本类需要在类路径根中存在db.properties数据库配置文件,文件内容示例:
* drivers=net.sourceforge.jtds.jdbc.Driver
* defaultpoolname.url=jdbc:jtds:sqlserver://127.0.0.1:1433/wapplat;charset=gb2312
* defaultpoolname.user=sa defaultpoolname.password=lutong
* defaultpoolname.maxconn=20
* </p>
* <p>
* Copyright: Copyright (c) 2005
* </p>
* <p>
* Company:lutong
* </p>
*
* @author <a href="mailto:qiang860818@163.com">DBoy</a>
* @version 1.0
*/

public class ConnectPool extends Thread {
/* 连接池,存放已创建但未使用的连接 */
private Stack pool = new Stack();

/* 被返回的数据库连接,将由线程检测并返回到池中 */
private Stack returnedPool = new Stack();

/* 已被取走、正在使用的连接 */
private Map using = new HashMap();

/* 已经创建连接池计数 */
private int created = 0;
/* 当前数据库类型 */
public static String dbtype;
/* JDBC Driver类 */
String drivers = null;

/* 数据库连接字符串 */
String url = null;

/* 数据库连接用户名 */
String user = null;

/* 数据库连接密码 */
String password = null;

/* 连接池最大数 */
int max = 100;

/* 连接池最小数 (还未实现) */
// int min = 10;
/* 空闲连接等待释放的时间(秒) ,(还未实现) */
// int idleTime = 1800;
/* 是否需要停止线程 */
boolean stopThread = false;

/* 各种同步锁对象,据说byte[]对象创建时间最短,占资料最少 */

如果您需转载 基于多线程的数据库连接池,请注明来自LinuxGoo.com,其版权归原作者所有。请广大网友留言时遵纪守法,使用文明用语。如果您在应用中有什么问题,请在下面留言,我们会尽快解答。
来顶一下
近回首页
返回首页
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
相关文章
栏目热门