`
7tianle
  • 浏览: 95174 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

apache的dbcp数据库连接池

    博客分类:
  • ssh
阅读更多
下载这些包并将这些包的路径添加到classpath中就可以使用dbcp做为项目中的数据库连接池使用了。  
  我在网上看到一段示例代码,作者   mahaixing,简单说说dbcp的使用方法:  
   
  import   org.apache.commons.pool.ObjectPool;  
  import   org.apache.commons.pool.impl.GenericObjectPool;  
  import   org.apache.commons.dbcp.ConnectionFactory;  
  import   org.apache.commons.dbcp.PoolingDriver;  
  import   org.apache.commons.dbcp.PoolableConnectionFactory;  
  import   org.apache.commons.dbcp.DriverManagerConnectionFactory;  
   
  public   class   DaoUtil   {  
           
          /**  
            *   数据库连接池  
            *   @see   http://jakarta.apache.org/commons/dbcp/index.html  
            */  
          private   static   PoolingDriver   driver   =   null;  
           
         
          /**  
            *   设置一个数据库连接池  
            *    
            *   @param   name   连接池的名称  
            *   @param   url   数据源  
            *   @throws   SQLException  
            */  
          private   static   void   setUpDriverPool(String   name,   String   url)   throws   SQLException{  
                  if   ((driver   ==   null)   ||   driver.getPoolNames().length   <   2)   {  
                          try   {  
                                  /**  
                                    *   首先创建一个对象池来保存数据库连接  
                                    *    
                                    *   使用   commons.pool   的   GenericObjectPool对象  
                                    */  
                                  ObjectPool   connectionPool   =   new   GenericObjectPool();  
                                   
                                  /**  
                                    *   创建一个   DriverManagerConnectionFactory对象  
                                    *   连接池将用它来获取一个连接  
                                    */  
                                  ConnectionFactory   connectionFactory   =   new   DriverManagerConnectionFactory(url,   null);  
                                   
                                  /**  
                                    *   创建一个PoolableConnectionFactory   对象。  
                                    */  
                                  PoolableConnectionFactory   poolableConnectionFactory   =    
                                          new   PoolableConnectionFactory(connectionFactory,connectionPool,null,null,false,true);  
                                   
                                  /**  
                                    *   注册PoolingDriver。  
                                    */  
                                  Class.forName("org.apache.commons.dbcp.PoolingDriver");  
                                   
                                  driver   =   (PoolingDriver)   DriverManager.getDriver("jdbc:apache:commons:dbcp:");  
                                   
                                  driver.registerPool(name,     connectionPool);  
                                   
                          }  
                          catch   (ClassNotFoundException   e)   {  
                                  throw   new   RuntimeException(e);  
                          }  
                  }  
          }  
           
          /**  
            *   关闭所有数据库连接池  
            *  
            */  
          public   static   void   shutDownDriver()   {  
                   
                  try   {                      
                          PoolingDriver   driver   =   (PoolingDriver)DriverManager.getDriver("jdbc:apache:commons:dbcp:");  
                          for   (int   i   =   0;   i   <   poolNames.length;   i++)   {  
                                  driver.closePool("pool");  
                          }  
                  }  
                  catch   (SQLException   sqle)   {  
                          throw   new   RuntimeException(sqle);  
                  }  
          }  
   
          /**  
            *   取得一个数据库连接对象。  
            *    
            *   因为可能使用两个不同的数据库,  
            *   所以依据report的值来确定使用那个数据库。  
            *    
            *   @param   report  
            *   @return  
            */  
          public   static   Connection   getConnection()   {  
                  Connection   con   =   null;  
                   
                  try   {  
                          //装载mysql的jdbc驱动  
                          String   driver   =   "com.mysql.jdbc.Driver";  
                          String   url   =   "jdbc:mysql://server/db?user=root";  
                          String   poolName   =   "pool";  
                          Class.forName(driver);  
                          setUpDriverPool(poolName,   url);  
   
                          con   =   DriverManager.getConnection("jdbc:apache:commons:dbcp:"   +   poolName);  
                          return   con;  
                  }  
                  catch   (ClassNotFoundException   cnfe)   {  
                          throw   new   RuntimeException("无法装入数据库引擎")   ;  
                  }    
                  catch   (SQLException   sqle)   {  
                          throw   new   RuntimeException("无法打开数据库连接");  
                  }  
          }  
           
          /**  
            *   执行清理过程  
            *    
            *   <li>关闭数据库连接</li>  
            *   <li>关闭语句对象</li>  
            *   <li>关闭结果集</li>  
            *    
            *   @param   con  
            *   @param   s  
            *   @param   rs  
            */  
          public   static   void   closeAll(Connection   con,   Statement   s,   ResultSet   rs)   {  
                  try   {  
                          if   (rs   !=   null)   {  
                                  rs.close();  
                                  rs   =   null;  
                          }  
                           
                          if   (s   !=   null)   {  
                                  s.close();  
                                  s   =   null;  
                          }  
                           
                          if   (con   !=   null)   {  
                                  con.close();  
                                  con   =   null;  
                          }  
                  }    
                  catch   (SQLException   sqle)   {  
                          //nothing   to   do,   forget   it;  
                  }  
          }  
           
  }  


我使用的tomcat   数据库连接池   引入相应的包后在配置文件中配置一下就能用   使用方法:在配置文件中加入  
    不知道对你有没有帮助  
    <data-sources>  
   
                <data-source   type="org.apache.commons.dbcp.BasicDataSource">  
                    <set-property   property="driverClassName"   value="oracle.jdbc.driver.OracleDriver"   />  
                    <set-property   property="url"   value="jdbc:oracle:thin:@databaseip:1521:sid"   />  
                    <set-property   property="username"   value="username"   />  
                    <set-property   property="password"   value="password"   />  
                    <set-property   property="minCount"   value="1"   />  
                    <set-property   property="maxCount"   value="8"   />          
                    <set-property   property="description"   value="description"   />  
                    <set-property   property="readOnly"   value="false"   />  
                    <set-property   property="autoCommit"   value="false"   />  
              </data-source>  
   
      </data-sources>
分享到:
评论

相关推荐

    Apache-DBCP数据库连接池

    Apache DBCP(Database Connection Pool)是Apache软件基金会下的一个开源项目,主要提供数据库连接池服务。数据库连接池在Java应用程序中扮演着重要的角色,它能够有效地管理数据库连接,提高应用性能并降低资源...

    dbcp数据库连接池使用jar包

    DBCP数据库连接池的引入,使得应用程序可以预先创建并维护一定数量的数据库连接,当需要与数据库通信时,从连接池中获取一个已存在的连接,用完后不是立即关闭,而是将其归还回连接池,供后续使用。这样减少了频繁的...

    DBCP数据库连接池

    1. **添加依赖**:在项目中引入DBCP的JAR包,如描述中所提到的"DBCP数据库连接池的完整jar包"。 2. **配置连接池**:创建一个配置文件,设置数据库URL、用户名、密码、驱动类名以及DBCP特定的参数。 3. **初始化...

    dbcp数据库连接池

    **数据库连接池(DBCP)** 是一个在Java应用程序中管理数据库连接的工具,它能够有效地提高数据库操作的性能和效率。DBCP全称为`Jakarta Commons DBCP`,是Apache软件基金会的一个项目,提供了对数据库连接的池化...

    dbcp数据库连接池jar包

    根据描述中的信息,"dbcp数据库连接池jar包"应该包含了DBCP所需的库文件。通常,这包括`commons-dbcp-x.x.x.jar`和`commons-pool-x.x.x.jar`,它们分别是DBCP的核心库和对象池组件。确保这些jar包已经添加到你的项目...

    DBCP数据库连接池jar包.zip

    "DBCP数据库连接池jar包.zip"这个压缩包包含以下文件: 1. `commons-dbcp2-2.6.0-bin`:这是DBCP2的二进制发行版,包含了编译后的jar文件,可以直接在项目中引用,用于实现数据库连接池的功能。 2. `commons-pool2-...

    dbcp数据库连接池用到的jar包

    总之,DBCP是一个强大的数据库连接池实现,它通过Apache Commons Collections和Pool库的支持,为Java应用程序提供了高效的数据库连接管理。在Spring框架中整合DBCP,可以简化数据库连接的生命周期管理,提升应用性能...

    DBCP数据库连接池包下载

    DBCP(Database Connection Pool)是Apache软件基金会的一个开源项目,全称为Apache Commons DBCP,它是一个基于Java的数据库连接池实现。在Java应用程序中,DBCP被广泛用于管理数据库连接,以提高性能和资源利用率...

    dbcp数据库连接池所需jar包

    使用DBCP数据库连接池,你需要在你的Java项目中引入这三个JAR文件,并进行相应的配置。以下是一些基本配置步骤: 1. 将这三个JAR文件添加到项目的类路径中。 2. 创建一个XML配置文件(如`dbcp-config.xml`),定义...

    DBCP配置数据库连接池

    DBCP(Database Connection Pool)是Apache软件基金会的Commons项目中的一个组件,它提供了一个数据库连接池服务。数据库连接池在应用服务器启动时创建一定数量的数据库连接,并将这些连接放入池中,当应用程序需要...

    DBCP数据库连接池[参照].pdf

    在上述内容中,主要展示了如何配置和使用DBCP数据库连接池。首先,配置文件`config.xml`定义了两个不同的数据库连接池,每个池都有自己的名称、用户名、密码、数据库URL、最大连接数和等待时间。例如,`one`连接池...

    DBCP数据库连接池1.2jar包

    DBCP(DataBase connection pool),数据库连接池。是 apache 上的一个 java 连接池项目,也是 tomcat 使用的连接池组件。单独使用dbcp需要3个包:commons-dbcp.jar,commons-pool.jar,commons-collections.jar由于建立...

    DBCP数据库连接池借鉴.pdf

    在本文档中,DBCP数据库连接池的配置和使用方法被详细介绍。首先,我们需要一个配置文件(如config.xml),用于定义不同的数据库连接池。在这个XML文件中,每个`&lt;pool&gt;`元素代表一个连接池,包含了如下关键属性: 1...

    DBCP数据库连接池jar包

    DBCP,全称为Apache Database Connection Pool,是由Apache软件基金会开发的一款开源数据库连接池组件。它在Java应用程序中扮演着至关重要的角色,通过有效地管理和复用数据库连接,显著提高了数据库访问性能,同时...

    DBCP数据库连接池.pdf

    使用DBCP数据库连接池的主要步骤包括: 1. 引入DBCP的依赖库。 2. 配置数据库连接池参数,通常通过XML文件或在Java代码中直接设置。 3. 初始化连接池,创建`BasicDataSource`对象,并根据配置设置其属性,如最大...

    用apache的dbcp建立数据库连接池

    Apache DBCP(Database Connection Pool)是Apache组织提供的一款开源的数据库连接池组件,它能够有效地管理和优化数据库连接,提高应用程序的性能和效率。在Java应用程序中,使用DBCP可以帮助我们减少频繁创建和...

    DBCP 数据库连接池JNDI连接 学习笔记

    数据库连接池(Database Connection Pool,简称 DBCP)是一种在多用户并发访问数据库时提高数据库系统性能的技术。它通过预创建并管理一定数量的数据库连接,避免了每次连接数据库时的初始化开销,同时也能有效地...

Global site tag (gtag.js) - Google Analytics