c3p0是什么

article/2025/9/27 18:28:14

1.c3p0是什么?

c3p0是一个库。它扩展了传统的jdbc数据库连接池,并且支持JDBC3规范和JDBC2的标准扩展。
2.为什么使用c3p0?

首先,c3p0是一种jdbc数据库连接池。那么为什么使用数据库连接池呢?因为数据库连接是一种关键的、有限的、昂贵的资源。传统的模式(如传统的java web项目中,servlet的beans中建立数据库连接),每次连接都需要验证用户,消耗了大量的时间和资源。而数据库连接池在系统初始化的时候,将数据库连接作为对象存储在内存中,当用户需要访问数据库时,并非建立一个新的连接,而是从连接池中取出一个已经建立的空闲连接对象。使用完毕后,用户不关闭连接,而是将数据库连接对象放回连接池中。数据库连接池管理数据连接的建立、断开,同时监视数据库连接数量和使用情况。使用数据库连接池会显著提高整个应用程序的伸缩性(大大提高了连接数量)和健壮性(能够应对大量用户频繁连接数据库,减少系统资源的消耗),提高应用程序的性能指标。

3.java web项目中部署c3p0(MyEclipse)
--------------------- 
作者:飞天小女警777 
来源:CSDN 
原文:https://blog.csdn.net/u014402683/article/details/74935581 
版权声明:本文为博主原创文章,转载请附上博文链接!

 

 

转自  https://www.cnblogs.com/leeying/p/3745588.html

  • c3p0是什么

  c3p0的出现,是为了大大提高应用程序和数据库之间访问效率的。

  它的特性:

  1. 编码的简单易用
  2. 连接的复用
  3. 连接的管理

  说到c3p0,不得不说一下jdbc本身,c3p0愿意就是对数据库连接的管理,那么原有的概念还是得清晰:DriverManager、Connection、StateMent、ResultMent。

  jdbc:java database connective这套API,不用多说,是一套用于连接各式dbms或连接桥接器的api,两个层级:上层供应用方调用api,下层,定义了各个dbms的spi的api(具体文档见:这里)。

  主要要提的是:datasource、DriverManager,想到哪儿写到哪儿,datasource是更高级一点的api,原因在于相对对应用来说更透明。

  Connection:同dbms的逻辑链接,类似于session管理概念, SQL statements are executed and results are returned within the context of a connection.

  jdbc的概念就到这里,平时用得比较多。

  • c3P0的概念

 

  c3p0的bean配置如下:

复制代码

 1 <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">2         <property name="driverClass" value="${jdbc.driverClassName}" />3         <property name="jdbcUrl" value="${jdbc.url}" />4         <property name="user" value="${jdbc.username}" />5         <property name="password" value="${jdbc.password}" />6         <property name="checkoutTimeout" value="30000" />7         <property name="maxPoolSize" value="15" />8         <property name="idleConnectionTestPeriod" value="180" />9         <property name="maxIdleTime" value="180" />
10     </bean>

复制代码

还有一些配置选项,后续详细说明。可见c3p0的bean引用使用的是:ComboPooledDataSource,该类结构如下:

 

 

以上类图都不是很完全,不过大体能表达出类之间的原理:

1、bean:ComboPooledDataSource的父类:AbstractPoolBackedDataSource有一个poolmanager字段,存储着对pool管理器

2、获取ds.getConnection()链接对象时,内部使用getPoolManger()获取C3p0ConnectionPooledManager(mgr)对象,该manager管理着pool对象:C3P0PooledConnectionPool对象,mgr.getPool().checkoutPooledConnection()

3、自此该connection已经被获取到了

4、让我们看看该connection的真实面目吧:

 ProxyConnection。

5、因此其实原理是:

  从pool里获取到的connection,是proxy包装的connection,而对connection的释放或者重用,是pool的管理责任:初始化池大小,维护池的大小(expand或shrink),管理unused、expired、checkout、checkin连接。

真正底层的连接是jdbc自己的连接,而c3p0的管理部分,基本上使用的是synchronized关键字,使用timerTask定时器工作。


http://chatgpt.dhexx.cn/article/wIqDqxhi.shtml

相关文章

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…

doxygen 教程 linux,使用Doxygen生成全中文的chm、pdf帮助文档的方法

下载和安装 Doxygen 到 Doxygen 官网 下载最新的Doxygen安装程序,然后安装。这个软件包包括了一个GUI界面的前端工具,可以帮助我们方便创建Doxygen配置文件和生成目标文档。 软件名称:帮助文档生成器( doxygen ) 1.8.13 官方最新英文安装版(附帮助文档)软件大小:21.7KB更新…