一般来说,Java应用程序访问数据库的过程如下:
①装载数据库驱动程序
②通过JDBC建立数据库连接
③访问数据库,执行SQL语句
④断开数据库连接
在第二步是通过创建Socket来和数据库建立连接,这里花费的时间要比实际的执行查询的操作所花费的时间还要更长,而且频繁的进行数据库连接操作会消耗大量的系统资源,所以经常会听到这么一句话“数据库连接很昂贵”。如果程序出现异常而未能断开数据库连接,还有可能导致数据库系统中的内存泄漏。
数据库连接池是创建、分配、管理和释放数据库连接的缓冲池的技术,连接池初始化时创建一定量的连接,然后从连接池中重用连接,而不是每次创建一个新的,从而减少连接创建时间。
DBCP
http://commons.apache.org/dbcp/
利用了Jakarta Commons Pool来实现连接池管理。Tomcat的数据源使用的就是DBCP。
C3P0
http://sourceforge.net/projects/c3p0/
一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展,可自动回收空闲连接。目前使用它的开源项目有Hibernate,Spring等。
BoneCP
http://jolbox.com/
一个只有四十几K大小的开源的快速的 JDBC 连接池。
阿里巴巴的Druid
https://github.com/AlibabaTech/druid
其他
Proxool http://proxool.sourceforge.net/ 2008年发布0.9.1版后已经不再更新
Tomcat JDBC Connection Pool http://people.apache.org/~fhanik/jdbc-pool/jdbc-pool.html 依赖于Tomcat
DBPool http://www.snaq.net/java/DBPool/
SmartPool http://smartpool.sourceforge.net/
XAPool http://xapool.ow2.org/
MiniConnectionPoolManager http://www.source-code.biz/miniconnectionpoolmanager/
分享到:
相关推荐
标题:Java数据库连接池 描述:本篇将详细介绍Java数据库连接池的概念,代码实现以及其在实际项目中的应用。数据库连接池是Java开发中优化数据库访问效率的关键技术,通过复用预创建的数据库连接,避免频繁创建和...
Java数据库连接池是Java开发中一个非常重要的技术,它主要用于管理数据库连接,提高数据库操作的效率和性能。在Java应用程序中,频繁地创建和关闭数据库连接会导致大量的系统资源浪费,而连接池则可以复用已建立的...
本篇文章将深入解析一个自定义的JAVA数据库连接池类,帮助开发者更好地理解和运用这一关键技术。 首先,连接池的基本思想是预先创建一定数量的数据库连接,并存储在一个集合(如Vector)中,供应用程序按需获取和...
Java数据库连接池的原理与应用 在Java开发领域,数据库连接池(Database Connection Pool,简称DBCP)是一种提高数据库访问性能、降低资源消耗的重要技术。它通过预先建立一定数量的数据库连接,存储在一个“池”中...
总的来说,Java数据库连接池如C3P0和Druid,以及Spring的JdbcTemplate,都是为了优化数据库操作而设计的工具。它们各自有其特点和优势,开发者可以根据项目需求选择合适的技术。在使用过程中,充分理解和合理配置...
Java数据库连接池是Java应用程序管理数据库连接的一种高效方式。它避免了每次需要访问数据库时创建新的连接,而是预先创建一定数量的连接并保存在池中,当程序需要时可以从池中获取,用完后归还,从而提高了系统性能...
Java数据库连接池C3P0是一种常用的开源数据库连接管理工具,它通过提供连接池服务,提高了应用程序处理数据库连接的效率,降低了系统资源的消耗。在Java应用中,尤其是在服务器端,数据库连接的创建和关闭是相对耗时...
本项目提供了一个轻量级的Java数据库连接池实现,旨在简化开发过程,提高应用性能并降低资源消耗。下面将详细介绍这个轻量级Java数据库连接池的设计理念、工作原理以及如何使用。 1. **设计理念** 轻量级数据库...
Java数据库连接池是一种重要的技术,它在Java应用程序与数据库交互时起到了关键的作用。数据库连接池在多线程、高并发的环境下尤其重要,因为它能够有效地管理和重用数据库连接,从而提高系统性能,减少资源消耗。 ...
Java数据库连接池驱动是Java应用程序在访问数据库时用于优化资源管理的一种技术。它提供了一种在多个数据库操作之间重用数据库连接的方式,从而避免了频繁创建和关闭连接带来的性能开销。连接池的核心思想是池化资源...