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使用)。下一章节我们设计如何封装一个数据库连接池和解析的具体方法。




mysql数据库连接池使用(一)dbcp方式的配置的更多相关文章

  1. .数据库连接池技术:DBCP和C3P0

    数据库连接池技术:DBCP和C3P0 1.什么是数据库连接池 已知的方法是需要访问数据库的时候进行一次数据库的连接,对数据库操作完之后再释放这个连接,通常这样业务是缺点很明显的: 用户每次请求都需要向 ...

  2. python3 实现mysql数据库连接池

    首先声明一下,这篇博客进行了通过自己的代码方式,加上这篇博客,最后总结出这段代码.参考博客连接:http://blog.csdn.net/zbc1090549839/article/details/5 ...

  3. 一个简单的MySql数据库连接池的实现

    package cn.hc.connectionPool; import java.io.IOException; import java.io.InputStream; import java.sq ...

  4. Python实现Mysql数据库连接池

    python连接Mysql数据库: python编程中可以使用MySQLdb进行数据库的连接及诸如查询/插入/更新等操作,但是每次连接mysql数据库请求时,都是独立的去请求访问,相当浪费资源,而且访 ...

  5. mysql数据库连接池使用(三)数据库元数据信息反射数据库获取数据库信息

    1.1. mysql数据库连接池使用(三)数据库元数据信息反射数据库获取数据库信息 有时候我们想要获取到数据库的基本信息,当前程序连接的那个数据库,数据库的版本信息,数据库中有哪些表,表中都有什么字段 ...

  6. MySql数据库连接池专题

    MySql数据库连接池专题 - aspirant - 博客园https://www.cnblogs.com/aspirant/p/6747238.html

  7. Druid数据库连接池及内置监控的配置和使用

    Druid介绍 Druid首先是一个数据库连接池,并且是目前最好的数据库连接池,在功能.性能.扩展性方面,都超过其他数据库连接池,包括DBCP.C3P0.BoneCP.Proxool.JBoss Da ...

  8. MySql数据库连接池

    1.传统链接(如下为示意图) 注意: (1).传统方式找DriverManager要连接,数目是有限的. (2).传统方式的close(),并没有将Connection重用,只是切断应用程序和数据库的 ...

  9. 主流Java数据库连接池分析(C3P0,DBCP,TomcatPool,BoneCP,Druid)

    主流数据库连接池 常用的主流开源数据库连接池有C3P0.DBCP.Tomcat Jdbc Pool.BoneCP.Druid等 C3p0: 开源的JDBC连接池,实现了数据源和JNDI绑定,支持JDB ...

随机推荐

  1. 【BZOJ1483】【HNOI2009】梦幻布丁

    题意:n个连续的点,有若干种颜色,每个颜色会因为某些操作变为另一种颜色,动态查询颜色段数. 解题思路:对每个颜色开一棵平衡树启发式合并应该是最裸的想法,但是我们有更优的! 考虑对每个颜色利用链表储存它 ...

  2. [BZOJ]4200: [Noi2015]小园丁与老司机

    Time Limit: 20 Sec  Memory Limit: 512 MBSec  Special Judge Description 小园丁 Mr. S 负责看管一片田野,田野可以看作一个二维 ...

  3. SpringBoot多环境部署,在启动时动态设置相应的配置文件

    项目中,往往在测试环境和正式环境拥有不同的配置,例如数据库连接,第三方库的appkey等.这时候,我们就要在不同的环境启用不同的配置 下面新建三个文件,分别表示开发环境,生产环境和测试环境的配置文件 ...

  4. JFinal实现伪静态

    JFinal 是基于 Java 语言的极速 WEB + ORM 框架,其核心设计目标是开发迅速.代码量少.学习简单.功能强大.轻量级.易扩展.Restful.在拥有Java语言所有优势的同时再拥有ru ...

  5. MySQl之最全且必会的sql语句

    创建一个名称为mydb1的数据库,如果有mydb1数据库则直接使用,如果无则创建mydb1数据库 create database if not exists mydb1; create databas ...

  6. C语言第五次作业——循环结构

    C语言程序设计第五次作业--循环结构(1) (一)改错题 输出华氏摄氏温度转换表:输入两个整数lower和upper,输出一张华氏摄氏温度转换表,华氏温度的取值范围是{lower,upper},每次增 ...

  7. Python开发——利用正则表达式实现计算器算法

    Python开发--利用正则表达式实现计算器算法 (1)不使用eval()等系统自带的计算方法 (2)实现四则混合运算.括号优先级解析 思路: 1.字符串预处理,将所有空格去除 2.判断是否存在括号运 ...

  8. 补充Mysql5.7用法

    下面简单介绍一下安装: [root@MySQL soft]# tar xf mysql-5.7.10-linux-glibc2.5-x86_64.tar.gz -C /data/service/ [r ...

  9. jenkins + pipeline构建自动化部署

    一.引言 Jenkins 2.x的精髓是Pipeline as Code,那为什么要用Pipeline呢?jenkins1.0也能实现自动化构建,但Pipeline能够将以前project中的配置信息 ...

  10. Luogu P1226 取余运算||快速幂_快速幂

    超短代码 #include<iostream> #include<cstdio> using namespace std; long long b,p,k; long long ...