基于多线程的数据库连接池并支持两种数据库 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[]对象创建时间最短,占资料最少 */
1/6 1 2 3 4 5 6 下一页 尾页 |