mysql数据库连接池使用(一)dbcp方式的配置

来源:互联网 发布:中国经济动能知乎 编辑:程序博客网 时间:2024/06/06 07:38

Apache的数据库连接池 DBCP的常用配置说明,因为项目中用到了需要对其封装,所以必须先了解怎么配置以及各个配置字段的含义,理解的基础上开发我们自己的数据库连接池。可以参考官网dbcp官网。

dbcp的配置在下面的配置文件详细介绍

[html] view plain copy
  1. <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">    
  2.         <!--驱动的名称我用的mysql 所以配置的mysql的驱动名称  -->  
  3.         <property name="driverClassName" value="com.mysql.jdbc.Driver" />     
  4.         <!--数据库用户名名称  -->  
  5.         <property name="username" value="root" />    
  6.         <!--数据库的密码 我本地的密码空 所以不用配置  -->  
  7.         <property name="password" value="" />    
  8.         <!--  数据库连接池启动时创建的连接数量 我设置的是10个-->  
  9.         <property name="initialSize" value="10" />    
  10.         <!-- 池里不会被释放的最多空闲连接数量。设置为0时表示无限制。 -->  
  11.         <property name="maxIdle" value="5" />    
  12.         <!-- 在不新建连接的条件下,池中保持空闲的最少连接数。 -->  
  13.         <property name="minIdle" value="5" />    
  14.         <!--同一时间可以从池分配的最多连接数量。设置为0时表示无限制。  -->  
  15.         <property name="maxActive" value="10" />    
  16.         <!--  -->  
  17.         <property name="removeAbandoned" value="true" />    
  18.         <!-- 自动回收超时时间(以秒数为单位) -->    
  19.         <property name="removeAbandonedTimeout" value="180" />   
  20.         <!--超时等待时间以毫秒为单位-->    
  21.         <property name="maxWait" value="3000" />   
  22.         <!-- 默认的SQL语句自动提交状态(开启或关闭)设置由连接池本身设置(false由连接池定),不设置该值setAutoCommit方法不被调用; -->  
  23.         <property name="defaultAutoCommit" value="false" />  
  24.         <!--要求必需是个SELECT类型的SQL语句,至少返回一行,由于它会在所有应用的SQL语句执行之前运行一次,  
  25.                   所以原则上应该对数据库服务器带来的压力越小越好,推荐使用“SELECT 1”  -->    
  26.         <property name="validationQuery">    
  27.             <value>SELECT 1</value>    
  28.          </property>    
  29.          <!-- 表示从连接池中获取连接前是否运行validationQuery,true=运行[默认],false=不运行 -->  
  30.         <property name="testOnBorrow">    
  31.             <value>true</value>    
  32.         </property>    
  33.         <!--表示将连接归还连接池前是否运行validationQuery,true=运行,false=不运行[默认];  -->  
  34.         <property name="testOnReturn">    
  35.             <value>false</value>    
  36.         </property>    
  37. </bean>    

自定义解析xmld对应的配置xml信息。

[html] view plain copy
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <da2s-configuration>  
  3.     <DefaultConnectionPool>3000</DefaultConnectionPool>  
  4.     <connectionPool name="3000">  
  5.         <dbtype>MYSQL</dbtype>  
  6.         <driverClassName>com.mysql.jdbc.Driver</driverClassName>  
  7.         <url>jdbc:mysql://localhost:3306/springok</url>  
  8.         <username>root</username>  
  9.         <password></password>  
  10.         <datasourceProperty>  
  11.             <defaultAutoCommit>false</defaultAutoCommit>  
  12.             <initialSize>10</initialSize>  
  13.             <maxActive>10</maxActive>  
  14.             <maxIdle>5</maxIdle>  
  15.             <minIdle>5</minIdle>  
  16.             <maxWait>3000</maxWait>  
  17.             <validationQuery>select 1</validationQuery>  
  18.             <testOnBorrow>true</testOnBorrow>  
  19.             <removeAbandoned>true</removeAbandoned>  
  20.             <removeAbandonedTimeout>180</removeAbandonedTimeout>  
  21.             <logAbandoned>true</logAbandoned>  
  22.         </datasourceProperty>  
  23.     </connectionPool>  
  24.       
  25.     <connectionPool name="5000">  
  26.         <dbtype>MYSQL</dbtype>  
  27.         <driverClassName>com.mysql.jdbc.Driver</driverClassName>  
  28.         <url>jdbc:mysql://localhost:3306/springok</url>  
  29.         <username>root</username>  
  30.         <password></password>  
  31.         <datasourceProperty>  
  32.             <defaultAutoCommit>false</defaultAutoCommit>  
  33.             <initialSize>10</initialSize>  
  34.             <maxActive>10</maxActive>  
  35.             <maxIdle>5</maxIdle>  
  36.             <minIdle>5</minIdle>  
  37.             <maxWait>3000</maxWait>  
  38.             <validationQuery>select 1</validationQuery>  
  39.             <testOnBorrow>true</testOnBorrow>  
  40.             <removeAbandoned>true</removeAbandoned>  
  41.             <removeAbandonedTimeout>180</removeAbandonedTimeout>  
  42.             <logAbandoned>true</logAbandoned>  
  43.         </datasourceProperty>  
  44.     </connectionPool>  
  45. </da2s-configuration>  

思考的起点:

  1. xml如何读取比较方便。
  2. xml如何应该新需求变化xml结构变化。
  3. 读取后的xml内容如何封装。
  4. 程序如何能够访问conn 如何封装。
  5. 客户端如何能很容易的调用开发的功能。
  xml解析使用Apache Commons Configuration框架具体使用参考xml解析(common configuratin使用)。下一章节我们设计如何封装一个数据库连接池和解析的具体方法。
原创粉丝点击