第四周作业-数据库连接池

  数据库连接池这个概念在上学期的时候做J2EE的实验时候就接触到了,当时仅仅只是了解了这个名词的概念,并没有真正的去深入了解用法,本课程需要做的项目难免需要大量访问数据库资源,考虑到系统的访问优化,开始重拾连接池这个工具。

  数据库连接在应用程序开发中是一种昂贵的资源,对他的操作优化直接影响到了整个系统的性能以及健壮性,连接池就是为了这个关键资源的优化而提出的一个重要概念,他首先新建一定量的数据库连接,当应用程序需要访问数据库时动态的分配连接,使用完毕后回收再利用,而不是频繁的新建和关闭连接,基于先进先出的服务顺序为应用程序提供良好的数据库性能保障。

  传统的JAVA连接数据库直接使用MYSQL的JDBC(Java Data Base Connectivity),这是一个简单粗暴的方法,由程序直接控制数据库连接,需要访问时从数据库服务器取得连接,执行过需要的操作后释放连接,在小型的本地程序或者对并发量要求不高的项目中,这或许是一个可行的方案;在当时做过的压力测试上,这种方法当时也能承受100台左右的并发访问,但仅仅能持续短时间,一但长时间高负载运行,整个系统就难逃瘫痪的结果。

  目前我所了解的数据库连接池有两种,分别是DBCP连接池和C3P0连接池。

  DBCP是Apache组织提供的开源连接池,Tomcat作为自家兄弟默认使用DBCP连接池,DBCP可以独立使用亦可以与应用服务器整合使用。

  C3P0也是一个开源的JDBC连接池,主要应用于Hibernate开发框架中。

  DBCP和C3P0的差别:

    DBCP没有自动回收空闲连接的机制,需用户主动释放;

    C3P0具有自动检测空闲连接并回收能力;

    DBCP和C3P0两种数据库连接池对连接的管理方式也不相同,C3P0提供最大空闲时间,当连接超过最大空闲时间时断开,而DBCP提供最大连接数。

  本文在参考http://www.cnblogs.com/xdp-gacl/p/4002804.html完成连接池配置后编写。

时间: 2024-10-12 23:50:02

第四周作业-数据库连接池的相关文章

数据库连接池的问题

该问题来源于面试过程中一位面试官问我的问题——"数据库连接池的好处".当时只是简单的答了一句“解决数据库建立和断开连接的消耗”,然后面试官反问我只有这么多了么?今日翻看<淘宝技术这十年>的时候又看到了相关内容,再次深究,终于得到答案,个人认为核心还是在于两点: 一.客户端与服务器建立连接需要多次网络往返 二.数据库连接池不一定非常优秀.连接池中放的是长连接,是进程级别的,在创建进程的时候,它就要独占一部分内存空间.     以下内容为转载,: 当你在设计一个数据库应用程序时

数据库连接池

声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权:凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记. 数据库连接池简介: 数据库连接对象是有限资源,所以数据库连接池是用于负责分配.管理和释放数据库连接对象,它允许应用程序重复使用一个现有的数据库连接对象,而不是再重新建立一个:这一点实际上和线程池的概念差不多.数据库连接池会释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏,这项技术能明显提高对数据库操作的性能. 不使用

JDBC数据库连接池技术

在JDBC中,获得连接或释放资源是非常消耗系统资源的两个过程,为了解决此类性能问题,通常采用连接池技术,来共享连接.这样我们就不需要每次都创建连接.释放连接了,这些操作都交给了连接池. 用池的概念来管理Connection,这样可以重复使用Connection.有了连接池以后就不用自己亲自创建连接而是通过连接池来获得Connection对象.当使用完Connection之后,调用Connection的close()方法不是真的将连接关闭,而是把Connection归还给连接池.连接池就可以继续保

第四周作业

第四周作业 1.复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限. (1)复制/etc/skel目录为/home/tuser1 [[email protected] ~]# cp -r /etc/skel/ /home [[email protected] ~]# mv /home/skel /home/tuser1 [[email protected] ~]# ll -a /home/tuser1/ total 2

Druid数据库连接池两种简单使用方式

阿里巴巴推出的国产数据库连接池,据网上测试对比,比目前的DBCP或C3P0数据库连接池性能更好 简单使用介绍 Druid与其他数据库连接池使用方法基本一样(与DBCP非常相似),将数据库的连接信息全部配置给DataSource对象. 下面给出2种配置方法实例: 1. 纯Java代码创建 DruidDataSource dataSource = new DruidDataSource();dataSource.setDriverClassName("com.mysql.jdbc.Driver&qu

几种常见数据库连接池的使用比较

感觉在介绍之前有必要阐述一下连接池的几个概念,有助于后边一些文字的理解. 最原始的数据库使用就是打开一个连接并进行使用,使用过后一定要关闭连接释放资源.由于频繁的打开和关闭连接对jvm包括数据库都有一定的资源负荷,尤其应用压力较大时资源占用比较多容易产生性能问题.由此使用连接池的作用就显现出来,他的原理其实不复杂:先打开一定数量的数据库连接,当使用的时候分配给调用者,调用完毕后返回给连接池,注意返回给连接池后这些连接并不会关闭,而是准备给下一个调用者进行分配.由此可以看出连接池节省了大量的数据库

数据库连接池配置说明

1. 引言 1.1 定义 数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出.对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标.数据库连接池正是针对这个问题提出来的. 数据库连接池负责分配.管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个:释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏.这项技术能明显提高对数据库操作的性能. 1.2 参考资料 DBC

数据库连接池的理解和使用

一.什么是数据库连接池? 官方:数据库连接池(Connection pooling)是程序启动时建立足够的数据库连接,并将这些连接组成一个连接池,由程序动态地对池中的连接进行申请,使用,释放. 个人理解:创建数据库连接是一个很耗时的操作,也容易对数据库造成安全隐患.所以,在程序初始化的时候,集中创建多个数据库连接,并把他们集中管理,供程序使用,可以保证较快的数据库读写速度,还更加安全可靠. 二.数据库连接池的运行机制 (1) 程序初始化时创建连接池 (2) 使用时向连接池申请可用连接 (3) 使

数据库连接池和connection的理解

数据库连接池Data Source Pool的理解 1.数据库连接池允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个连接,避免了每个方法里new connection的耗费资源和时间. 2.数据库连接池是在项目启动时候初始化的,以方便程序运行时,随时可以调用这些已经被创建好的connection.只需要getConnection()就好. connection的建立.断开都由连接池自身来管理. 3.创建connection是个很耗时的操作,所以建议在项目启动的时候去创建connec