【 数据库连接池】C3P0

article/2025/9/27 18:31:16

数据库连接池概述

在JDBC编程中,每次创建和断开Connection对象都会消耗一定的时间和IO资源。 这是因为在Java程序与数据库之间建立连接时,数据库端要验证用户名和密码并为该连接分配资源,而程序则要把代表连接Connection对象等加载到内存中,所以建立数据库连接的开销很大。尤其是在大量的并发访问时,频繁地创建、断开数据库 连接势必会影响数据库的访问效率,甚至导致数据库崩溃。

为了解决该类问题的发生诞生了数据库连接池技术。数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用现有的数据库连接,而不是每次都重新建立连接。
————————————————
版权声明:本文为CSDN博主「代码坤」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_65168354/article/details/129168808

C3P0连接池

第一步:添加jar包

  • c3p0-0.9.1.2.jar
  • mysql-connector-java-5.0.8-bin.jar

第二步:在src下创建C3P0的配置文件c3p0-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config><default-config><property name="driverClass">com.mysql.jdbc.Driver</property><property name="jdbcUrl">jdbc:mysql://localhost:3306/test0222</property><property name="user">root</property><property name="password">root</property><property name="initialPoolSize">15</property><property name="maxIdleTime">40</property><property name="maxPoolSize">150</property><property name="minPoolSize">20</property></default-config>
</c3p0-config>

第三步:编写操作C3P0的工具类C3P0Util

package com.etime1;import com.mchange.v2.c3p0.ComboPooledDataSource;import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;public class C3P0Util {//创建数据库连接池private static DataSource dataSource = new ComboPooledDataSource();public  static DataSource getDataSource(){return dataSource;}//创建连接public static Connection getConnection(){try {return dataSource.getConnection();} catch (SQLException e) {throw new RuntimeException("获取数据库连接失败");}}//释放连接public static void release(Connection connection, Statement statement, ResultSet resultSet) {if (resultSet != null) {try {resultSet.close();} catch (Exception e) {e.printStackTrace();}resultSet = null;}if (statement != null) {try {statement.close();} catch (Exception e) {e.printStackTrace();}statement = null;}if (connection != null) {try {connection.close();} catch (Exception e) {e.printStackTrace();}connection = null;}}
}

第四步:使用C3P0

(1)、在数据库中建立membershipcard表并插入数据

mysql> CREATE TABLE membershipcard (id int primary key auto_increment, username varchar(40),password varchar(40), email varchar(40), birthday date 
);-- 插入数据
INSERT INTO membershipcard (username,password,email,birthday) VALUES ("lili","abc123","lili@sina.com","1999-08-14");
INSERT INTO membershipcard (username,password,email,birthday) VALUES ("koko","efg456","koko@sohu.com","1998-07-15");
INSERT INTO membershipcard (username,password,email,birthday) VALUES ("mbmb","mnb333","mbmb@sina.com","1997-06-16");
INSERT INTO membershipcard (username,password,email,birthday) VALUES ("zxzx","poi666","zxzx@sohu.com","1996-05-17");

(2)、编写JavaBean即Membershipcard

package com.etime1;
import java.util.Date;public class Membershipcard {private int id;private String username;private String password;private String email;private Date birthday;public Membershipcard() {}public Membershipcard(int id, String username, String password, String email, Date birthday) {this.id = id;this.username = username;this.password = password;this.email = email;this.birthday = birthday;}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}public Date getBirthday() {return birthday;}public void setBirthday(Date birthday) {this.birthday = birthday;}@Overridepublic String toString() {return "[id=" + id + ", username=" + username + ", password=" + password + ", email=" + email+ ", birthday=" + birthday + "]";}
}

(3)、在JDBC中使用C3P0

package com.etime1;import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.ResultSet;public class Test02 {public static void main(String[] args) throws Exception {getSelect();}public static void getSelect() throws Exception{Connection connection = C3P0Util.getConnection();String sql = "select * from membershipcard";PreparedStatement preparedStatement = connection.prepareStatement(sql);ResultSet resultSet = preparedStatement.executeQuery();while (resultSet.next()){int id = resultSet.getInt(1);String username = resultSet.getString(2);String password = resultSet.getString(3);String email = resultSet.getString(4);Date birthday = resultSet.getDate(5);Membershipcard membershipcard = new Membershipcard(id, username, password, email, birthday);System.out.println(membershipcard);}}
}

在这里插入图片描述


http://chatgpt.dhexx.cn/article/4tQWNJDJ.shtml

相关文章

c3p0是什么

1.c3p0是什么&#xff1f; c3p0是一个库。它扩展了传统的jdbc数据库连接池&#xff0c;并且支持JDBC3规范和JDBC2的标准扩展。 2.为什么使用c3p0&#xff1f; 首先&#xff0c;c3p0是一种jdbc数据库连接池。那么为什么使用数据库连接池呢&#xff1f;因为数据库连接是一种关键…

Aspose.Slides for java 22.9最新版 官网最新

最新版支持转换种类和效率都有很大提升 aspose为ppt提供的操作转化工具 ppt转换成各种文档都可 版本已无水印 一句代码即可 简单有效 可配合测试 协助解决 代开发app与api等

swiper 轮播插件使用 一次显示多个slides

**项目中需要实现下图效果 ** demo 代码 拿来即用,引用的地址是 CDN 资源 <!DOCTYPE html> <html lang"en"><head><meta charset"utf-8"><title>Swiper demo</title><meta name"viewport" content&qu…

aspose-slides-22.5-jdk16

官网下载地址&#xff1a;Aspose Repository Browser /repo/com/aspose/aspose-slides/22.5/ 一、分析 1、官方验证部分为&#xff1a; InputStream is new FileInputStream("license.xml");License license new License();license.setLicense(is); 以下为一个过…

Aspose.Slides for .NET V23 Crack

Aspose.Slides for .NET V23 Crack 现在&#xff0c;您可以在将演示文稿保存为HTML时保留文档缩放。 Aspose.Slides for.NET是一个演示文稿处理API&#xff0c;使应用程序能够读取、写入、修改和转换Microsoft PowerPoint演示文稿。作为一个独立的API&#xff0c;它提供了管理P…

slides.com 导出PDF

对于在Slides上创建的演示文稿 https://slides.com/jijing/testing-microservice-ecosystems#/title 选择最下面一项&#xff0c;点击Downlaod a copy of 下载 下载解压后编辑&#xff0c;index.html 按提示替换 head&#xff0c;body, script 的内容&#xff0c;注意最后替…

ionic5中轮播图ion-slides、ion-slide的使用

这里写目录标题 参考文档准备新建页面图片准备 简单轮播图实现实现自动轮播的功能定义参数界面上使用该参数 自动轮播干扰时停止问题的解决定义名称#slide引入ViewChild获取slide对象实现点击结束自动轮播 实现点击按钮上下轮播图切换 参考文档 对于轮播图的实现&#xff0c;我…

Python-pptx Slides

image Slides对象 使用Presentation的slides属性可以访问Slides对象。 它不打算直接构造。class pptx.slide.Slides 属于Presentation实例的幻灯片序列&#xff0c;具有访问单个幻灯片的列表语义。 支持索引访问&#xff0c;len()和迭代。 add_slide(slide_layout ) 返回一个新…

ionic2 使用slides制作滑动效果的类型选择栏

类似的效果如下图&#xff1a; 1. 生成一个component ionic g component MySlide 2. 在my-slide.html中添加代码&#xff1a; <ion-slides class"slide-title" [options]"mySlideOptions"><ion-slide *ngFor"let slide of slides; let i in…

Slider简介

来小米实习快两个月了&#xff0c;分配的一个大任务就是调研Slider&#xff0c;下面我简单的描述下Apache下的孵化项目Slider吧 背景 YARN是HADOOP2中的通用资源管理平台&#xff0c;但是基于YARN开发应用&#xff0c;需要用户自己编写AM来处理资源申请、容错等&#xff0c;难度…

slides.js插件用法

一、下载地址&#xff1a;http://slidesjs.com css部分&#xff1a; html部分&#xff1a; js部分&#xff1a; 文章来自&#xff1a;源码在线https://shengli.me/javascript/56.html;

Google docs/slides的下载

参考&#xff1a;https://blog.csdn.net/mzpmzk/article/details/79318029 Google Drive/Docs/Presentation 的下载 1. 问题&#xff1a; 当我看到一个youtube视频下给的google slides时&#xff0c;想把这个ppt下载下来&#xff0c;但是没有下载的按钮&#xff0c;无法下…

Obsidian 插件(二):Advanced_Slides 的使用

文章目录 Advanced Slides 的使用一、 概述1、 简介2、 特征3、 第一个 PPT 二、 基础语法1、 水平垂直幻灯片2、 元素注释3、 幻灯片注释4、 块注解5、 元素动画6、 内联样式7、 幻灯片背景样式8、 演讲者模式9、 列表动画10、 画图支持11、 图标12、 表情包13、 图表支持14、…

Slides - 在线制作效果精美的幻灯片(PPT)

Slides 是可以在浏览器中使用的在线幻灯片编辑器。与传统的演示软件&#xff0c;比如 PowerPoint 相比&#xff0c;Slides 不需要下载任何东西。你所有的信息都是安全地存储在我们的服务器上&#xff0c;无论你在哪里。不管你说的是在一次会议上演讲或者只是通过电子邮件发送你…

使用Latex制作分享,演讲,Presentation用的Slides,PPT——Beamer教程

1、什么是Beamer 什么是Slides&#xff1f; Slides指的是幻灯片&#xff0c;常见的包括Microsoft 的PPT&#xff0c; macOS的Keynote&#xff0c;Google的Google Slides等。 什么是Beamer&#xff1f; Beamer 是一个用于创建演示文稿 LaTeX 的文档类。作为LaTeX的一个文档类…

jQuery幻灯片插件Slides

Slides – 是一个简单的&#xff0c;容易定制和风格化&#xff0c;的jQuery幻灯片插件。 Slides提供褪色或幻灯片过渡效果&#xff0c;图像淡入淡出&#xff0c;图像预压&#xff0c;自动生成分页&#xff0c;循环&#xff0c;自动播放的自定义等很多选项。 用Slides插件&#…

win10下安装doxygen

作为一只小菜鸟&#xff0c;总是从看大神代码起步的&#xff0c;这时候必要的注释真的是太重要了&#xff01;最近查ffmpeg一些官方库时它们都有用到doxygen来生成项目文档&#xff0c;这里特此记录下win10平台下安装doxygen的步骤&#xff0c;勉励自己多多加油&#xff01; 资…

【Doxygen使用教程】

文章目录 1 软件安装2 Doxygen 注释规范2.1 注释格式2.2 自动注释模板&#xff08;VSCode settings.json 配置&#xff09;2.3 手动注释模板2.3.1 文件注释模板2.3.2 函数注释模板 3 使用教程3.1 Doxygen Wizard Project3.2 Doxygen Wizard Mode3.3 Doxygen Wizard Output3.4 D…

Doxygen 使用总结,生成chm文件,附:配置文件Doxyfile

win系统下&#xff0c;doxygen软件下载和安装 doxygen-1.8.14-setup.exe 协调使用的软件下载和配置&#xff1a; graphviz-2.38.msi——生成调用关系图 htmlhelp.exe——生成chm文件&#xff08;可选&#xff09; 详见《文档生成工具-Doxygen使用方法以及注释规则》 《Win7下Do…

Doxygen生成.chm文件

Doxygen生成.chm文件 目录 Doxygen生成.chm文件安装准备Doxygen Gui使用Wizard设置project设置Mode设置Output设置Diagrams设置 Expert设置Project设置Input设置HTML设置Dot设置 Run运行生成 总结 安装准备 1、doxygenGUI 下载地址&#xff1a;Doxygen: Downloads 2、HTML He…