文档章节

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

loyal
 loyal
发布于 2016/05/05 21:48
字数 792
阅读 18
收藏 0

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

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

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

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

<?xml version="1.0" encoding="UTF-8"?>
<da2s-configuration>
	<DefaultConnectionPool>3000</DefaultConnectionPool>
	<connectionPool name="3000">
		<dbtype>MYSQL</dbtype>
		<driverClassName>com.mysql.jdbc.Driver</driverClassName>
		<url>jdbc:mysql://localhost:3306/springok</url>
		<username>root</username>
		<password></password>
		<datasourceProperty>
			<defaultAutoCommit>false</defaultAutoCommit>
			<initialSize>10</initialSize>
			<maxActive>10</maxActive>
			<maxIdle>5</maxIdle>
			<minIdle>5</minIdle>
			<maxWait>3000</maxWait>
			<validationQuery>select 1</validationQuery>
			<testOnBorrow>true</testOnBorrow>
			<removeAbandoned>true</removeAbandoned>
			<removeAbandonedTimeout>180</removeAbandonedTimeout>
			<logAbandoned>true</logAbandoned>
		</datasourceProperty>
	</connectionPool>
	
	<connectionPool name="5000">
		<dbtype>MYSQL</dbtype>
		<driverClassName>com.mysql.jdbc.Driver</driverClassName>
		<url>jdbc:mysql://localhost:3306/springok</url>
		<username>root</username>
		<password></password>
		<datasourceProperty>
			<defaultAutoCommit>false</defaultAutoCommit>
			<initialSize>10</initialSize>
			<maxActive>10</maxActive>
			<maxIdle>5</maxIdle>
			<minIdle>5</minIdle>
			<maxWait>3000</maxWait>
			<validationQuery>select 1</validationQuery>
			<testOnBorrow>true</testOnBorrow>
			<removeAbandoned>true</removeAbandoned>
			<removeAbandonedTimeout>180</removeAbandonedTimeout>
			<logAbandoned>true</logAbandoned>
		</datasourceProperty>
	</connectionPool>
</da2s-configuration>

思考的起点:

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





本文转载自:http://blog.csdn.net/qq_30739519/article/details/50866291

共有 人打赏支持
loyal

loyal

粉丝 70
博文 68
码字总数 334
作品 0
技术主管
私信 提问
数据库连接池DBCP和C3P0的使用

hibernate开发组推荐使用c3p0; spring开发组推荐使用dbcp; hibernate in action推荐使用c3p0; 一. dbcp 在数据库服务器强行关闭连接或数据库服务重启后,无法reconnect 二. dbcp 连接池的创建...

mn_1127
2015/08/27
0
0
Javaweb配置最全的数据源配置

DBCP DBCP是Apache推出的数据库连接池(Database Connection Pool)。 操作步骤: 添加jar包: commons-dbcp-1.4.jar commons-pool-1.5.6.jar 添加属性资源文件 dbcpconfig.properties文件。 ...

---dgw博客
2017/10/18
0
0
activemq 5.13.2 jdbc 数据库持久化 异常 找不到驱动程序

配置activemq 5.13.2 数据库持久化的时候,首先将mysql数据库驱动拷贝到activemq 的lib目录下, 然后配置activemq.xml 文件 增加两个配置点: 1, <persistenceAdapter> <jdbcPersistenceAda...

Atom_me
2016/04/18
469
3
c3p0、dbcp、tomcat jdbc pool 连接池区别

查看资料,得知dbcp和c3p0都是单线程的,在高并发的环境下性能会非常低下, 决定换用tomcat自带的jdbc-pool,关于jdbc-pool的项目介绍。 区别参考链接:http://www.open-open.com/lib/view/o...

张嘴吃药
2017/10/30
0
0
数据库开发 - 数据库连接池

数据库连接池 建立连接 通过获取数据库连接,这段代码通过对应的JDBC驱动,完成了客户端与服务器的大量交互。由于数据库连接经过4次,才能连接成功。则在复杂的网络环境下,建立数据连接的网...

抢小孩糖吃
2016/09/22
46
0

没有更多内容

加载失败,请刷新页面

加载更多

指针数组和数组指针的区别

这两个名字不同当然所代表的意思也就不同。我刚开始看到这就吓到了,主要是中文太博大精深了,整这样的简称太专业了,把人都绕晕了。从英文解释或中文全称看就比较容易理解。 指针数组:arr...

天王盖地虎626
36分钟前
2
0
Qt那些事0.0.18

今天要记一下Qt中的Resource。自我感觉理解的不错,但是还会难免有谬误,在日后有可能会更新,也有可能不会。 小声的念叨一句,女人心,海底针。 今天就直接跳过了关于QML在qrc文件中的介绍,...

Ev4n
44分钟前
2
0
深入解析js的作用域、预解析机制

虽然,ES6在我们工作中应用得越来越广泛,但是还是很多项目保留着ES5的写法,所以,今天,带着大家重新巩固下ES5下的作用域及预解析机制。 概念: 作用域:域,指的是一个空间、范围、区域,...

前端攻城老湿
47分钟前
2
0
Spring Cloud Feign - 声明式 REST Client

1、Feign是什么 声明式REST client,来自NetFlix。 允许你编写无实现代码调用REST services 替换RestTemplate(甚至更简单) Spring Cloud 为使用Feign提供了包装器 2、怎样使用Feign 对比:...

Benz001
52分钟前
4
0
前端、后端和全栈到底不该学什么

1、前言 在职业规划咨询过程中经常会被问到这样的问题: 老师,我是该深入钻研专精一门,走技术大牛路线,还是所有都要精通,做一个全栈工程师? 类似问题的变种还有,老师我是不是该30岁最迟...

前端攻城小牛
54分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部