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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: Apache的数据库连接池 DBCP的常用配置说明,因为项目中用到了需要对其封装,所以必须先了解怎么配置以及各个配置字段的含义,理解的基础上开发我们自己的数据库连接池。

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





相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
3天前
|
SQL 关系型数据库 MySQL
MySQL Workbench的安装与配置
MySQL Workbench的安装与配置
|
3天前
|
关系型数据库 MySQL 数据库
MySQL8.0.36 安装配置教程(保姆级,包含图文讲解,环境变量的配置)适合小白
MySQL8.0.36 安装配置教程(保姆级,包含图文讲解,环境变量的配置)适合小白
|
5天前
|
Oracle 关系型数据库 数据处理
实时计算 Flink版产品使用问题之在同一个tm里面,任务超过20个后就显示连接池满,连不上数据库了,该怎么处理
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
5天前
|
SQL 监控 关系型数据库
实时计算 Flink版产品使用问题之使用mysql cdc配置StartupOptions.initial()全量之后就不增量了,是什么原因
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
8天前
|
关系型数据库 MySQL 数据库
Mysql—8.0.21下载安装配置教程
该教程介绍了MySQL的下载与安装步骤。建议从官网下载MySQL 8.0及以上版本,也可通过提供的百度网盘链接获取。解压后,在指定目录创建my.ini配置文件,并替换basedir和datadir为自己实际的安装路径。接着,将MySQL安装目录的bin文件夹添加到系统环境变量Path中。以管理员模式运行CMD,进入bin目录,使用`mysqld --initialize --console`初始化数据库,记下生成的临时密码。最后,用`net start mysql`启动服务,`mysql -u root -p`登录并使用ALTER指令修改初始密码。
74 1
|
3天前
|
Java 关系型数据库 流计算
实时计算 Flink版操作报错合集之配置cats进行从MySQL到StarRocks的数据同步任务时遇到报错,该怎么办
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
231 0
|
3天前
|
关系型数据库 MySQL 数据库
MySQL数据库的安装与配置
MySQL数据库的安装与配置
|
2天前
|
存储 关系型数据库 MySQL
MySQL数据库进阶第三篇(MySQL性能优化)
MySQL数据库进阶第三篇(MySQL性能优化)
|
2天前
|
SQL 关系型数据库 MySQL
关系型数据库mysql跨平台兼容性
【6月更文挑战第13天】
47 4
|
2天前
|
存储 运维 关系型数据库
关系型数据库mysql高度可定制性
【6月更文挑战第13天】
37 2

热门文章

最新文章