KUk中国设计秀
private synchronized void fillPool() //维护连接池大小
KUk中国设计秀
public synchronized void TimerEvent() //定时器事件处理函数
KUk中国设计秀
}
KUk中国设计秀
通过这几个接口,已经可以完成连接池的基本管理。在TimeEvent()函数中完成连接池的状态检验工作,fillPool()时连接池至少保持最小连接数。因为我们要保存每一个连接的状态,所以还需要一个数据库连接对象:
KUk中国设计秀
class ConnectionObject{
KUk中国设计秀
public java.sql.Connection con; public boolean inUse; //是否被使用标志
KUk中国设计秀
public long lastaccess; //最近一次开始使用时间
KUk中国设计秀
public int useCount; //被使用次数
KUk中国设计秀
}
KUk中国设计秀
加入了ConnectionObject对象后,在ConnectionPool中操作的应该只是ConnectionObject,而其他进程需要的只是ConnectionObject的con属性,因此我们再加入一个类,作为其他进程获得与返回连接的接口: CLASS Conn{
KUk中国设计秀
GetConnection(); //从连接池中取出一个有效连接
KUk中国设计秀
CloseConnection(); //返回连接,此时并没有关闭连接,只是放回了连接池
KUk中国设计秀
DestroyPool(); //销毁连接池
KUk中国设计秀
}
KUk中国设计秀
最后我们的整个系统总的架构如下:
KUk中国设计秀
KUk中国设计秀
KUk中国设计秀
KUk中国设计秀
通过上面的介绍,我们可以看出,连接池技术的关键就是其自身的管理机制,以上的管理流程只是本人一点见解,关键是想向大家介绍一种思路,在此基础上,您可以进一步完善连接池技术为您所用。KUk中国设计秀