当前位置:网站首页>JDBC技术(三)——使用Druid数据库连接池测试
JDBC技术(三)——使用Druid数据库连接池测试
2022-08-09 01:30:00 【--流星。】
什么是数据库连接池
数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出。
一个数据库连接对象均对应一个物理数据库连接,每次操作都打开一个物理连接,使用完都关闭连接,这样造成系统的性能低下。
数据库连接池的解决方案是在应用程序启动时建立足够的数据库连接,并讲这些连接组成一个连接池(简单说:在一个“池”里放了好多半成品的数据库联接对象),由应用程序动态地对池中的连接进行申请、使用和释放。对于多于连接池中连接数的并发请求,应该在请求队列中排队等待。并且应用程序可以根据池中连接的使用率,动态增加或减少池中的连接数。
连接池技术尽可能多地重用了消耗内存地资源,大大节省了内存,提高了服务器地服务效率,能够支持更多的客户服务。通过使用连接池,将大大提高程序运行效率,同时,我们可以通过其自身的管理机制来监视数据库连接的数量、使用情况等。
前期准备
1、和JDBC技术(二)——设置通用的sql和配置文件一样
2、除此之外,导入另外两个jar包
项目结构

代码编写
改动不是很大,我就不全贴了
1、工具类
package com.lx.jdbc03.util;
import com.alibaba.druid.pool.DruidDataSourceFactory;
import javax.sql.DataSource;
import java.io.IOException;
import java.io.InputStream;
import java.sql.*;
import java.util.Properties;
/** * @author 流星 */
public class JDBCUtil3 {
static DataSource dataSource = null;
static{
try {
// 加载配置文件并转换为流,加载到properties对象中
Properties properties = new Properties();
InputStream is = JDBCUtil3.class.getClassLoader()
.getResourceAsStream("druid.properties");
properties.load(is);
// 创建连接池
dataSource = DruidDataSourceFactory.createDataSource(properties);
} catch (Exception e) {
e.printStackTrace();
}
}
public static Connection getConnection() {
try {
return dataSource.getConnection();
} catch (Exception e) {
throw new RuntimeException("获取连接失败!");
}
}
public static void close(PreparedStatement preparedStatement, ResultSet resultSet) {
try {
if (resultSet != null) {
resultSet.close();
}
if (preparedStatement != null) {
preparedStatement.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
2、druid配置文件
driverClassName=com.mysql.cj.jdbc.Driver
url=jdbc:mysql:///test?useSSL=true&serverTimezone=GMT%2B8
username=root
password=123456
initialSize=5
maxActive=10
maxWait=1000
minIdle=1
测试结果

附:参考资料
边栏推荐
- 轻量化网络ChannelNet--channel-wize Conv在channel维度卷积
- requestAnimationFrame实现浏览器动画
- 生成一系列随机字符串的文件
- LeetCode每日两题02:第一个错误的版本 (均1200道)方法:二分查找
- 知识图谱学习笔记——我的第一次知识图谱实践
- 基于机器学习之模型树短期负荷预测(Matlab代码实现)
- [Signal denoising] Based on Sage-Husa adaptive Kalman filter to realize the suppression of ocean wave magnetic field noise and the generation of ocean wave magnetic field noise with matlab code
- 4-1 Matplotlib库 数据分析常用图
- 【Unity】判断鼠标是否点击在UI上
- 任务五 处理连续型数据
猜你喜欢

Use Ehcache distributed cache to easily create commercial-grade high-concurrency, high-performance API interfaces!

『Another Redis DeskTop Manager』用了这款Redis可视化工具,分析效率提升12倍

字节输入流(InputStream)与字节输出流(OutputStream)

面试秘籍 | 软件测试必备的mysql数据库技术

轻量级网络SqueezeNet学习记录

在实际工作中如何开展性能测试?

Image denoising based on edge enhancement Diffusion 】 (cEED) and Coherence Enhancing coursing together (cCED) filter to realize image denoising matlab code

在特征通道提升网络性能 --SENet网络详解

Bugs encountered in remote control projects

全文翻译:EDPB关于VVA(虚拟语音助理)中处理个人数据的指南02/2021
随机推荐
String compression
Network In Network学习记录
容器运维平台的故障处理-1
使用百度EasyDL实现智能垃圾箱
轻量化网络ChannelNet--channel-wize Conv在channel维度卷积
“圆梦杯”大学生智能硬件设计大赛 初赛样题——理论题作答
2022年中国全民健身发展白皮书
软件测试的调用接口怎么调用,逻辑是什么?
轻量级CNN网络高效设计准则-ShuffleNet v2学习记录
Transformer前言:self-attention与Multi-Headed Attention的详细理解
全文翻译:EDPB关于VVA(虚拟语音助理)中处理个人数据的指南02/2021
5-1 Seaborn 关系绘图
低代码接口开发平台——YesApi(API+数据表单)
typescripet92-添加任务功能优化
在特征通道提升网络性能 --SENet网络详解
KQL和Lucene的区别
5-5 Seaborn库FacetGrid结构图
入门数据库Days5
多语种翻译-免费多语种翻译软件
字节输入流(InputStream)与字节输出流(OutputStream)