DBCP数据库连接池实例(2种方法实现)

2024-05-23 07:32

本文主要是介绍DBCP数据库连接池实例(2种方法实现),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

第一种实现方式:不利用配置文件 关键代码如下:

package tan.com;import java.io.InputStream;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;import javax.sql.DataSource;import org.apache.commons.dbcp.BasicDataSource;
import org.apache.commons.dbcp.BasicDataSourceFactory;
import org.junit.Test;
public class TestJDBC {/*** 如何使用DBCP数据库连接呢?* 1、加入2个jar包commons pool* 2、创建数据库连接池实例* 3、创建常用的属性* 4、从数据源中获取数据库连接* @throws Exception */@Testpublic void testDPCP() throws SQLException{BasicDataSource dataSource=null;//1.创建DBCP数据库源实例dataSource=new BasicDataSource();//2.为数据源实例指定必须的属性dataSource.setUsername("root");dataSource.setPassword("1234");dataSource.setUrl("jdbc:mysql://localhost:3306/tan");dataSource.setDriverClassName("com.mysql.jdbc.Driver");//3。指定数据源的一些可选的属性//1)指定数据库连接池中初始化连接数的个数dataSource.setInitialSize(5);//2)指定最大的连接数:同一时刻同时向数据库申请的连接数//最大空闲数,放洪峰过后,连接池中的连接过多,dataSource.setMaxActive(5);//3)指定最小连接数:数据库空闲状态下所需要保留的最小连接数//防止当洪峰到来时,再次申请连接引起的性能开销;dataSource.setMinIdle(2);//4)最长等待时间:等待数据库连接的最长时间,单位为毫秒,超出将抛出异常dataSource.setMaxWait(1000*5);//4.从数据源中获取数据库连接Connection connection=dataSource.getConnection();System.out.println(connection.getClass());}}
第二种方式使用配置文件:

/*** 1. 加载 dbcp 的 properties 配置文件: 配置文件中的键需要来自 BasicDataSource的属性.* 2. 调用 BasicDataSourceFactory 的 createDataSource 方法创建 DataSource* 实例* 3. 从 DataSource 实例中获取数据库连接. * @throws Exception */@Testpublic void testDBCPWithDataSourceFactory() throws Exception{Properties properties = new Properties();InputStream inStream = TestJDBC.class.getClassLoader().getResourceAsStream("dbcp.properties");properties.load(inStream);DataSource dataSource = BasicDataSourceFactory.createDataSource(properties);System.out.println( dataSource.getConnection()); }
配置文件属性:dbcp.properties

username=root
password=1234
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql:///tan


initialSize=10
maxActive=50
minIdle=5
maxWait=5000

运行结果:

jdbc:mysql:///tan, UserName=root@localhost, MySQL Connector Java


2014年5月14日 星期三笔记



这篇关于DBCP数据库连接池实例(2种方法实现)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/996190

相关文章

SpringBoot路径映射配置的实现步骤

《SpringBoot路径映射配置的实现步骤》本文介绍了如何在SpringBoot项目中配置路径映射,使得除static目录外的资源可被访问,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一... 目录SpringBoot路径映射补:springboot 配置虚拟路径映射 @RequestMapp

Python与MySQL实现数据库实时同步的详细步骤

《Python与MySQL实现数据库实时同步的详细步骤》在日常开发中,数据同步是一项常见的需求,本篇文章将使用Python和MySQL来实现数据库实时同步,我们将围绕数据变更捕获、数据处理和数据写入这... 目录前言摘要概述:数据同步方案1. 基本思路2. mysql Binlog 简介实现步骤与代码示例1

504 Gateway Timeout网关超时的根源及完美解决方法

《504GatewayTimeout网关超时的根源及完美解决方法》在日常开发和运维过程中,504GatewayTimeout错误是常见的网络问题之一,尤其是在使用反向代理(如Nginx)或... 目录引言为什么会出现 504 错误?1. 探索 504 Gateway Timeout 错误的根源 1.1 后端

Redis实现高效内存管理的示例代码

《Redis实现高效内存管理的示例代码》Redis内存管理是其核心功能之一,为了高效地利用内存,Redis采用了多种技术和策略,如优化的数据结构、内存分配策略、内存回收、数据压缩等,下面就来详细的介绍... 目录1. 内存分配策略jemalloc 的使用2. 数据压缩和编码ziplist示例代码3. 优化的

基于C#实现PDF转图片的详细教程

《基于C#实现PDF转图片的详细教程》在数字化办公场景中,PDF文件的可视化处理需求日益增长,本文将围绕Spire.PDFfor.NET这一工具,详解如何通过C#将PDF转换为JPG、PNG等主流图片... 目录引言一、组件部署二、快速入门:PDF 转图片的核心 C# 代码三、分辨率设置 - 清晰度的决定因

Java Kafka消费者实现过程

《JavaKafka消费者实现过程》Kafka消费者通过KafkaConsumer类实现,核心机制包括偏移量管理、消费者组协调、批量拉取消息及多线程处理,手动提交offset确保数据可靠性,自动提交... 目录基础KafkaConsumer类分析关键代码与核心算法2.1 订阅与分区分配2.2 拉取消息2.3

SpringBoot集成XXL-JOB实现任务管理全流程

《SpringBoot集成XXL-JOB实现任务管理全流程》XXL-JOB是一款轻量级分布式任务调度平台,功能丰富、界面简洁、易于扩展,本文介绍如何通过SpringBoot项目,使用RestTempl... 目录一、前言二、项目结构简述三、Maven 依赖四、Controller 代码详解五、Service

Python 基于http.server模块实现简单http服务的代码举例

《Python基于http.server模块实现简单http服务的代码举例》Pythonhttp.server模块通过继承BaseHTTPRequestHandler处理HTTP请求,使用Threa... 目录测试环境代码实现相关介绍模块简介类及相关函数简介参考链接测试环境win11专业版python

GO语言短变量声明的实现示例

《GO语言短变量声明的实现示例》在Go语言中,短变量声明是一种简洁的变量声明方式,使用:=运算符,可以自动推断变量类型,下面就来具体介绍一下如何使用,感兴趣的可以了解一下... 目录基本语法功能特点与var的区别适用场景注意事项基本语法variableName := value功能特点1、自动类型推

基于Python实现自动化邮件发送系统的完整指南

《基于Python实现自动化邮件发送系统的完整指南》在现代软件开发和自动化流程中,邮件通知是一个常见且实用的功能,无论是用于发送报告、告警信息还是用户提醒,通过Python实现自动化的邮件发送功能都能... 目录一、前言:二、项目概述三、配置文件 `.env` 解析四、代码结构解析1. 导入模块2. 加载环