在网上看到的一个连接池类DBConnectionManager:
应用实例:
  DBConnectionManager dbM = DBConnectionManager.getInstance();
  Connection con = dbM.getConnection("idb");我的疑问是:
如果在两个jsp页面都用上面的方法来获得数据库连接的话,好像是创建了两个DBConnectionManager的实例!这样不就创建了两个不同的数据库连接池类了吗?如果更多的页面的话就更加多了.......我知道我的理解肯定有误,连接池不该是这样的!请朋友们指点迷津,谢谢各位!

解决方案 »

  1.   

    整个项目应该是共用一个连接池实例才对啊!不是吗?如果象这样的话:
    jsp页面应用实例:  
       DBConnectionManager  dbM  =  DBConnectionManager.getInstance();  
       Connection  con  =  dbM.getConnection("idb");
    那不是一个页面就创建了一个连接池实例了吗?
      

  2.   

    可以用JAVABEAN嘛,scope设成application
    这样就共用了,不然用连接池有什么意义!
      

  3.   

    DBConnectionManager dbM = DBConnectionManager.getInstance();
    他这里是.getInstance()你注意看并不是new DBConnectionManager();
    它应该在getInstance()这个方法里做了判断的。这里就是一个单态模式
      

  4.   

    DBConnectionManager dbM = DBConnectionManager.getInstance();
    他这里是.getInstance()你注意看并不是new DBConnectionManager();
    它应该在getInstance()这个方法里做了判断的。这里就是一个单态模式
    ========================================================================也就是说,如果一个页面创建了连接池实例,那么另外一个页面调用上面的语句时就会寻找已经存在的连接池实例来使用,而不会另外创建另外一个连接池。是不是这样呢?