全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Java数据库连接池之c3p0简介_动力节点Java学院整理

c3p0是什么

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

它的特性:

  • 编码的简单易用
  • 连接的复用
  • 连接的管理

说到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配置如下:

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
  <property name="driverClass" value="${jdbc.driverClassName}" />
  <property name="jdbcUrl" value="${jdbc.url}" />
  <property name="user" value="${jdbc.username}" />
  <property name="password" value="${jdbc.password}" />
  <property name="checkoutTimeout" value="30000" />
  <property name="maxPoolSize" value="15" />
  <property name="idleConnectionTestPeriod" value="180" />
  <property name="maxIdleTime" value="180" />
 </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定时器工作。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# Java  # 数据库连接池  # c3p0  # Java 数据库连接池c3p0 介绍  # Java数据库连接池c3p0过程解析  # Java使用C3P0数据源链接数据库  # 数据库连接池c3p0配置_动力节点Java学院整理  # 浅谈Java安全之C3P0的使用  # 的是  # 自己的  # 让我们  # 不是很  # 说到  # 详细说明  # 写到  # 管理器  # 这套  # 过大  # 多说  # 而对  # 比较多  # 就到  # 易用  # 类似于  # 还有一些  # 用得  # 大家多多  # 应用程序 


相关文章: 建站之星安装步骤有哪些常见问题?  建站之星后台密码如何安全设置与找回?  南平网站制作公司,2025年南平市事业单位报名时间?  如何制作网站标识牌,动态网站如何制作(教程)?  教学网站制作软件,学习*后期制作的网站有哪些?  网站按钮制作软件,如何实现网页中按钮的自动点击?  佛山企业网站制作公司有哪些,沟通100网上服务官网?  高端企业智能建站程序:SEO优化与响应式模板定制开发  建站之星伪静态规则如何正确配置?  小型网站制作HTML,*游戏网站怎么搭建?  如何在宝塔面板创建新站点?  已有域名和空间如何快速搭建网站?  定制建站策划方案_专业建站与网站建设方案一站式指南  制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?  已有域名如何快速搭建专属网站?  C#如何在一个XML文件中查找并替换文本内容  网站规划与制作是什么,电子商务网站系统规划的内容及步骤是什么?  齐河建站公司:营销型网站建设与SEO优化双核驱动策略  建站之星如何配置系统实现高效建站?  定制建站如何定义?其核心优势是什么?  魔毅自助建站系统:模板定制与SEO优化一键生成指南  建站三合一如何选?哪家性价比更高?  电商网站制作价格怎么算,网上拍卖流程以及规则?  建站168自助建站系统:快速模板定制与SEO优化指南  家庭建站与云服务器建站,如何选择更优?  网页制作模板网站推荐,网页设计海报之类的素材哪里好?  洛阳网站制作公司有哪些,洛阳的招聘网站都有哪些?  招贴海报怎么做,什么是海报招贴?  深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?  交易网站制作流程,我想开通一个网站,注册一个交易网址,需要那些手续?  图册素材网站设计制作软件,图册的导出方式有几种?  东莞专业网站制作公司有哪些,东莞招聘网站哪个好?  大连网站制作公司哪家好一点,大连买房网站哪个好?  如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南  如何零成本快速生成个人自助网站?  建站之星如何助力网站排名飙升?揭秘高效技巧  如何快速上传建站程序避免常见错误?  如何快速搭建高效简练网站?  ,柠檬视频怎样兑换vip?  矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?  网站设计制作公司地址,网站建设比较好的公司都有哪些?  建站主机是什么?如何选择适合的建站主机?  深圳 网站制作,深圳招聘网站哪个比较好一点啊?  c# F# 的 MailboxProcessor 和 C# 的 Actor 模型  如何在橙子建站上传落地页?操作指南详解  建站之星会员如何解锁更多建站功能?  如何在七牛云存储上搭建网站并设置自定义域名?  网站制作外包价格怎么算,招聘网站上写的“外包”是什么意思?  定制建站平台哪家好?企业官网搭建与快速建站方案推荐  昆明网站制作哪家好,昆明公租房申请网上登录入口? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。