iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >c3p0数据库连接池如何在Java项目中使用
  • 190
分享到

c3p0数据库连接池如何在Java项目中使用

java数据库连接池c3p0 2023-05-31 07:05:13 190人浏览 泡泡鱼
摘要

今天就跟大家聊聊有关c3p0数据库连接池如何在Java项目中使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。c3p0是什么c3p0的出现,是为了大大提高应用程序和数据库之间访问效率

今天就跟大家聊聊有关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,该类结构如下:

c3p0数据库连接池如何在Java项目中使用

c3p0数据库连接池如何在Java项目中使用

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

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

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

自此该connection已经被获取到了

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

 ProxyConnection。

因此其实原理是:

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

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

看完上述内容,你们对c3p0数据库连接池如何在Java项目中使用有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注编程网精选频道,感谢大家的支持。

--结束END--

本文标题: c3p0数据库连接池如何在Java项目中使用

本文链接: https://www.lsjlt.com/news/224444.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • c3p0数据库连接池如何在Java项目中使用
    今天就跟大家聊聊有关c3p0数据库连接池如何在Java项目中使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。c3p0是什么c3p0的出现,是为了大大提高应用程序和数据库之间访问效率...
    99+
    2023-05-31
    java 数据库连接池 c3p0
  • c3p0数据库连接池如何使用
    这期内容当中小编将会给大家带来有关c3p0数据库连接池如何使用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、jar包引用开源项目,自然要先下载人家的jar包,我这里有...
    99+
    2022-10-18
  • proxool数据库连接池如何在Java项目中使用
    今天就跟大家聊聊有关proxool数据库连接池如何在Java项目中使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Proxool是一种Java数据库连接池技术。sourceforg...
    99+
    2023-05-31
    java proxool 数据库连接池
  • 如何在springboot项目中使用druid数据库连接池
    如何在springboot项目中使用druid数据库连接池?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Druid连接池是阿里巴巴开源的数据库连接池项目,后来贡献给Apac...
    99+
    2023-06-14
  • 如何在Java项目中模拟一个数据库连接池
    本文章向大家介绍如何在Java项目中模拟一个数据库连接池,主要包括如何在Java项目中模拟一个数据库连接池的使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。Java的特点有哪些Java的特点有哪...
    99+
    2023-06-06
  • c3p0数据库连接池如何进行配置
    这篇文章将为大家详细讲解有关c3p0数据库连接池如何进行配置,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。c3p0的配置方式分为三种,分别是setters一个个地设置各个配置项2.类路径下提...
    99+
    2023-05-31
    c3p0 数据库连接池
  • 详解springboot 使用c3p0数据库连接池的方法
    使用springboot开发时,默认使用内置的tomcat数据库连接池,经常碰到这种情况:运行时间一长,数据库连接中断了。所以使用c3p0连接池吧。引入的maven依赖:<dependency> <groupId>...
    99+
    2023-05-31
    spring boot c3p0
  • Java项目中有哪些常用的数据库连接池
    Java项目中有哪些常用的数据库连接池?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。定义数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出...
    99+
    2023-05-31
    java 数据库连接池 中有
  • 项目之C++如何实现数据库连接池
    目录前言项目背景功能点介绍1、初始连接量(initSize)2、最大连接量(maxSize)3、最大空闲时间(maxIdleTime)4、连接超时时间(connectionTimeO...
    99+
    2023-03-23
    C++数据库连接池 数据库连接池 C++连接池
  • Java操作数据库——使用连接池连接数据库
    传统方式和连接池方式传统方式的步骤使用传统方式在Java中使用JDBC连接数据库,完成一次数据库的操作,一般有以下几个步骤: 加载驱动。 建立连接。 执行SQL语句。 释放连接。 传统方式的弊端每一次对数据库的操作都要建立一次连接,并且会将...
    99+
    2014-08-26
    java基础 java 连接池
  • 如何在SpringBoot 中使用 Druid 数据库连接池
    目录1.Maven中的pom文件2.SpringBoot 配置文件3.配置Druid数据源实例4.过滤器和Servlet5.使用@ServletComponentScan注解,6.D...
    99+
    2022-11-11
  • 如何在Java项目中利用jdbc-odbc桥接方式来连接数据库
    如何在Java项目中利用jdbc-odbc桥接方式来连接数据库?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1、配置数据源控制面板下搜索管理工具->ODBC数据源(32位...
    99+
    2023-05-31
    jdbc odbc java
  • Java中使用Jedis连接池连接Redis数据库流程
    场景 Centos中Redis的下载编译与安装(超详细): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103967334 Redis的启动和关闭(前台启动和...
    99+
    2018-02-08
    Java中使用Jedis连接池连接Redis数据库流程
  • 怎么在Java项目中使用jdbc对mysql数据库进行连接
    怎么在Java项目中使用jdbc对mysql数据库进行连接?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。具体如下:import java.sql.Connection...
    99+
    2023-05-31
    java jdbc mysql
  • java数据库连接池如何实现
    Java数据库连接池可以通过以下步骤实现:1. 导入相应的依赖库:你需要导入数据库驱动程序和连接池的相关依赖库。一般来说,你需要使用...
    99+
    2023-09-16
    java 数据库
  • Druid数据库连接池如何使用
    这篇文章主要介绍了Druid数据库连接池如何使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Druid数据库连接池如何使用文章都会有所收获,下面我们一起来看看吧。概述数据库连接池是个容器,负责分配、管理数据库...
    99+
    2023-07-05
  • Java数据库连接池Tomcat怎么使用
    这篇文章主要介绍“Java数据库连接池Tomcat怎么使用”,在日常操作中,相信很多人在Java数据库连接池Tomcat怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java数据库连接池Tomcat怎...
    99+
    2023-06-25
  • 如何在Web项目中连接阿里云数据库RDS?
    随着互联网的发展,数据量的不断增大,传统的数据库已不能满足大规模数据的存储和处理需求。因此,云数据库应运而生,它能够提供弹性扩展、高可用性、安全性等优势。本文将详细介绍如何在Web项目中连接阿里云数据库RDS。 步骤一:创建阿里云数据库RD...
    99+
    2023-10-29
    阿里 数据库 项目
  • 线程池如何在Java项目中使用
    今天就跟大家聊聊有关线程池如何在Java项目中使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Java通过Executors提供四种线程池,分别为:newCachedThreadP...
    99+
    2023-05-31
    java 线程池 ava
  • 在Python数据库连接池中如何创建请求连接
    在Python数据库连接池中如何创建请求连接,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。在Python数据库连接池中操作过程中如果你设置好了连接池,你就可以按...
    99+
    2023-06-17
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作