分类: Mysql/postgreSQL
2010-11-10 15:01:06
序号
|
变量名
|
应用范围
|
变量类型
|
初始值
|
是否static
|
作用
|
1
|
instance
|
protected
|
DBConnectionManager
|
|
是
|
连接池管理类实例
|
2
|
clients
|
private
|
Int
|
|
是
|
记录实例数量
|
3
|
dirvers
|
private
|
Vector
|
|
否
|
数据库驱动集, 存放多个数据库驱动
|
4
|
log
|
Private
|
PrintWriter
|
|
否
|
控件日志输出类实例
|
5
|
pools
|
Public
|
Hashtable
|
|
是
|
连接池集, 存放多个连接池
|
序号
|
方法名
|
参数
|
返回值
|
功能
|
1
|
getInstance
|
无
|
void
|
返回连接池管理类的实例(static synchronized public)
|
2
|
init
|
无
|
Void
|
实现日志输出, 加载数据库驱动, 创建连接池
|
3
|
log
|
String msg
|
Void
|
输出当前日期与日志内容到日志文件
|
4
|
log
|
Throwable e String msg
|
Void
|
输出当前日期与日志内容与错误信息到日志文件
|
5
|
loadDriver
|
无
|
Void
|
*从配置文件Configuration类中读取数据库驱动字符串
*各驱动以分隔符分隔, 解析后将其注册到DriverManager 中
*将每个驱动作为元素存入drivers 中
|
6
|
createPools
|
无
|
Void
|
构造内部类数据库连接池DBConnectionPool, 创建连接池实例
将创建的连接池, 存入pools 连接池集中, 每个连接池都有名字
new DBConnectionPool(poolName, url, user, password, max);
|
7
|
getCurConns
|
String poolName
|
Int
|
*通过参数poolName 连接池名, 得到连接池实例
*通过连接池实例, 返回一个连接池中当前连接数
*当连接池中所有连接, 被释放之后, 此数值为0
调用 pool.getCurConns();
|
8
|
getSumConns
|
String poolName
|
int
|
*通过参数poolName 连接池名, 得到连接池实例
*通过连接池实例, 返回一个连接池中累计连接数
*无论连接是否被释放, 只要使用了连接, 此值是递增的
调用 pool.getSumConns();
|
9
|
GetOracleErr
|
String poolName
|
int
|
调用 pool.getOracleErr();
取得连接时有可能到ORACLE 执行错误代码, 没有问题时返回0
|
10
|
freeConnection
|
String poolName
Connection conn
|
Void
|
调用pool.freeConnection(con);
释放指定连接池的中的指定连接
|
11
|
getNullPool
|
String poolName
|
int
|
调用pool.getNullPool();
得到池空未连接数
|
12
|
getMaxConns
|
String poolName
|
int
|
调用 pool.getMaxConns();
*当前的最大连接数
*这个连接数要小于在配置文件中设定的限制连接数
|
13
|
getConnection
|
String poolName
|
Connection
|
*获得一个可用的(空闲的)连接.
*如果没有可用连接,且已有连接数小于最大连接数限制,则创建并返回新连接
调用 return pool.getConnection();
|
14
|
DBConnectionManager
|
无
|
Void
|
构造函数, 调用init() 执行初始
|
15
|
release
|
无
|
void
|
public synchronized
*只有唯一连接池管理类
*取出pools 连接池集中所有连接池
*调用pool.release(); 实例释放
*得到drivers 驱动集中所有驱动
*调用 DriverManager.deregisterDriver(driver);注销驱动
|
16
|
|
|
|
|
序号
|
变量名
|
应用范围
|
变量类型
|
初始值
|
是否static
|
作用
|
1
|
sum
|
private
|
int
|
|
否
|
|
2
|
checkedOut
|
private
|
int
|
|
否
|
正在使用的连接
|
3
|
freeConnections
|
protected
|
Vector
|
|
否
|
|
4
|
maxConn
|
Private
|
int
|
|
否
|
|
5
|
max
|
Public
|
Int
|
|
否
|
此连接池允许建立的最大连接数
|
6
|
name
|
|
String
|
|
否
|
连接池名称
|
7
|
password
|
|
String
|
|
否
|
数据库密码
|
8
|
URL
|
|
String
|
|
否
|
数据库连接URL
|
9
|
user
|
|
String
|
|
否
|
数据库用户
|
10
|
isNullPool
|
|
int
|
|
否
|
|
11
|
isOracleErr
|
|
int
|
|
否
|
|
12
|
|
|
|
|
|
|
13
|
|
|
|
|
|
|
序号
|
方法名
|
参数
|
返回值
|
功能
|
1
|
DBConnectionPool
|
String name String URL
String user
String password
int maxConn
|
void
|
构造函数, 初始化类变量
|
2
|
freeConnection
|
Connection con
|
Void
|
public synchronized
*将指定的连接, 存入类Vector变量freeConnections中, 加入到向量的末尾
*正在使用的连接数减1
|
3
|
getConnection
|
无
|
void
|
public synchronized
* 从空闲连接池freeConnections中获得一个可用连接.
* 如没有空闲的连接且当前连接数小于最大连接数限制,则创建新连接.
* 如原来登记为可用的连接不再有效,则从向量删除之, 然后递归调用自己以尝试新的可用连接.
|
4
|
getConnection
|
long timeout
|
Connection
|
public synchronized
l 从连接池获取可用连接.
l 可以指定客户程序能够等待的最长时间
l 参见前一个getConnection()方法.
|
5
|
release
|
无
|
void
|
public synchronized
关闭空闲连接池freeConnections中的所有连接
|
6
|
newConnection
|
无
|
Connection
|
Private
创建一个新的连接, 连接数加1(即用getMaxConns返回的值)
|
7
|
getCurConns
|
无
|
int
|
得到当前连接数, 非空闲的
|
8
|
getSumConns
|
无
|
int
|
得到程序调用连接的总次数, 一个连接有可能调用多次
|
9
|
getMaxConns
|
无
|
int
|
得到总的连接数, 空闲+非空闲
|
10
|
getNullPool
|
无
|
int
|
*得到在超出连接数限制后, 继续请求连接的总数
*使用getConnection没有得到连接, 返回null 的个数
|
11
|
getOracleErr
|
无
|
int
|
在使用newConnection 时, 出现异常的次数
|
12
|
testConn
|
Connection conn
|
int
|
测试连接是否有效, 执行语句
|