首页>java频道>java教程>正文
研究分析JDBC技术在数据库连接池上的应用

www.zige365.com 2010-6-7 10:47:16 点击:发送给好友 和学友门交流一下 收藏到我的会员中心

连接池管理类是连接池类的外覆类(wrapper),符合单例模式,即系统中只能有一个连接池管理类的实例。其主要用于对多个连接池对象的管理,具有以下功能:①装载并注册特定数据库的JDBC驱动程序;②根据属性文件给定的信息,创建连接池对象;③为方便管理多个连接池对象,为每一个连接池对象取一个名字,实现连接池名字与其实例之间的映射;④跟踪客户使用连接情况,以便需要是关闭连接释放资源。连接池管理类的引入主要是为了方便对多个连接池的使用和管理,如系统需要连接不同的数据库,或连接相同的数据库但由于安全性问题,需要不同的用户使用不同的名称和密码。

2、连接池实现

下面给出连接池类和连接池管理类的主要属性及所要实现的基本接口:

  1. public class DBConnectionPool implements TimerListener{   
  2. private int checkedOut;//已被分配出去的连接数   
  3. private ArrayList freeConnections = new ArrayList();//容器,空闲池,根据//创建时间顺序存放已创建但尚未分配出去的连接   
  4. private int minConn;//连接池里连接的最小数量   
  5. private int maxConn;//连接池里允许存在的最大连接数   
  6. private String name;//为这个连接池取个名字,方便管理   
  7. private String password;//连接数据库时需要的密码   
  8. private String url;//所要创建连接的数据库的地址   
  9. private String user;//连接数据库时需要的用户名   
  10. public Timer timer;//定时器   
  11. public DBConnectionPool(String name, String URL, String user, String   
  12. password, int maxConn)//公开的构造函数   
  13. public synchronized void freeConnection(Connection con) //使用完毕之后,//把连接返还给空闲池   
  14. public synchronized Connection getConnection(long timeout)//得到一个连接,//timeout是等待时间   
  15. public synchronized void release()//断开所有连接,释放占用的系统资源   
  16. private Connection newConnection()//新建一个数据库连接   
  17. public synchronized void TimerEvent() //定时器事件处理函数   
  18. }   
  19. public class DBConnectionManager {   
  20. static private DBConnectionManager instance;//连接池管理类的唯一实例   
  21. static private int clients;//客户数量   
  22. private ArrayList drivers = new ArrayList();//容器,存放数据库驱动程序   
  23. private HashMap pools = new HashMap ();//以name/value的形式存取连接池//对象的名字及连接池对象   
  24. static synchronized public DBConnectionManager getInstance()//如果唯一的//实例instance已经创建,直接返回这个实例;否则,调用私有构造函数,创//建连接池管理类的唯一实例   
  25. private DBConnectionManager()//私有构造函数,在其中调用初始化函数init()   
  26. public void freeConnection(String name, Connection con)// 释放一个连接,//name是一个连接池对象的名字   
  27. public Connection getConnection(String name)

    本新闻共4页,当前在第3页  1  2  3  4  

我要投稿 新闻来源: 编辑: 作者:
相关新闻
JDBC连接Sybase数据库的三种方法
JDBC数据源的几种形式
java教程:finalize()方法
java基础教程:构造方法
java教程:成员变量