相信很多coder到现在还没有真正明白数据源和连接池的概念,其实可以推荐去看一下javax.sql.DataSource的类注释,讲的很清楚:
这是其中的一部分
There are three types of implementations:
* <OL>
* <LI>Basic implementation -- produces a standard <code>Connection</code>
* object
* <LI>Connection pooling implementation -- produces a <code>Connection</code>
* object that will automatically participate in connection pooling. This
* implementation works with a middle-tier connection pooling manager.
* <LI>Distributed transaction implementation -- produces a
* <code>Connection</code> object that may be used for distributed
* transactions and almost always participates in connection pooling.
* This implementation works with a middle-tier
* transaction manager and almost always with a connection
* pooling manager.
* </OL>
也就是其是对于数据源来说,无非就是通过数据库用户名和密码还有数据库名去获取连接的一个地方,jdk 为我们提供了DataSource统一接口,具体数据源是由各个数据库厂商提供的,各个数据库厂商将会提供驱动包,开发的时候通过jdk提代的一个驱动管理器DriverManager来加载驱动去数据源获取一个有效的连接。
而连接池也只是数据源的实现之一,通过上面的注释可以看出来,数据源其实有三种实现:一是标准的实现,二是连接池的实现,三是分布式事务的实现。 对于第一种每次都会获取一个新的连接,而第二种将会对连接重复使用,使用后立即释放,以减少对系统内存的浪费,对于spring 有一个实现DriverManagerDataSource,它只是一个虚拟的connection pool,实际上每次连接还是要创建一个新的连接,要使用连接池,请看DriverManagerDataSource的类注释:
<p>If you need a "real" connection pool outside of a J2EE container, consider
* <a href="http://jakarta.apache.org/commons/dbcp">Apache's Jakarta Commons DBCP</a>
* or <a href="http://sourceforge.net/projects/c3p0">C3P0</a>.
* Commons DBCP's BasicDataSource and C3P0's ComboPooledDataSource are full
* connection pool beans, supporting the same basic properties as this class
* plus specific settings (such as minimal/maximal pool size etc).
推荐咱们使用jakarta的Commons DBCP还有C3P0 然后在服务器里面做相应的配置就可以使用连接池了。
dbcp没有自动的去回收空闲连接的功能c3p0有自动回收空闲连接功能
相关推荐
为了解决这一问题,引入了数据源(DataSource)和连接池(Connection Pool)的概念。 数据源概念指的是在Java中使用javax.sql.DataSource接口来获取数据库连接。数据源屏蔽了底层数据库连接的细节,使得开发者可以...
在Java Web应用中,Tomcat作为一款广泛应用的Servlet容器,其数据源连接池配置是确保高效、稳定数据库访问的关键步骤。本篇文章将详细介绍如何在Tomcat中配置数据源连接池,以及涉及的相关jar包文件。 首先,理解...
【T10数据源与连接池】是关于Java Web应用程序中使用JDBC连接数据库的一种优化策略,主要解决了传统JDBC方式存在的资源浪费和安全性问题。数据源和连接池的概念是解决这些问题的关键。 **1. 数据源(DataSource)**...
本篇文章将详细讲解JDBC数据源连接池的配置和使用,以帮助你更好地理解和应用这一关键技术。 ### 1. 什么是数据源连接池 数据源连接池(DataSource或Connection Pool)是一种管理数据库连接的技术,它预先创建并...
在企业级应用开发中,数据源连接池是关键组件之一,它能有效地管理数据库连接,提高系统的性能和可扩展性。WebLogic Server,作为Oracle公司的一款成熟的企业级应用服务器,提供了强大的数据源(DataSource)连接池...
在本文中,我们将深入探讨如何配置SQL SERVER 2000与WebLogic 8.1之间的数据源和连接池,以便实现两者之间的有效通信。WebLogic Server是一个流行的Java应用服务器,而SQL SERVER 2000是Microsoft提供的关系型数据库...
最后,对于大数据部门和数据中台服务,这种动态数据源连接池的实现具有以下优势: - **灵活性**:可以轻松地添加、删除或修改数据源,无需重启服务。 - **高可用性**:根据业务负载,可以动态调整数据源的使用,...
commons-dbcp-1.2.2.jar commons-dbcp-1.2.2 API.chm commons-pool-1.4-src commons-pool-1.4.jar commons-pool-1.4 API.chm
数据源连接池的基本用法,配置信息,代码案例、 实现数据源的动态切换和案例 数据源连接池的基本用法,配置信息,代码案例、 实现数据源的动态切换和案例 数据源连接池的基本用法,配置信息,代码案例、 实现...
标题与描述中的知识点聚焦于Tomcat中连接池和数据源的使用,这涉及到数据库连接管理、资源优化以及服务器配置等方面的重要技术细节。以下是对这些关键概念的深入解析: ### 数据库连接池的作用 数据库连接是一种...
Druid连接池提供了一个内置的监控页面,通过监控配置可以让开发者获得数据库连接池、SQL监控、慢查询等性能指标,进而优化数据源的使用。 综上所述,通过上述关键知识点的实施,可以在Spring Boot应用中成功配置和...
为了提高应用性能并确保资源的有效利用,通常会使用数据源连接池技术来管理和复用数据库连接。本文将详细介绍如何在Java Web应用中配置常用的数据库连接池,并通过具体示例来展示配置过程。 #### 二、数据源连接池...
GlassFish 数据源连接池配置 GlassFish 是一个开源的 Java EE 应用服务器,它提供了一个基于 Web 的管理接口,允许用户通过 Web 界面配置和管理服务器的各种设置。其中,配置数据源连接池是 GlassFish 的一个重要...
在Java应用开发中,数据源(DataSource)和连接池(Connection Pool)是管理数据库连接的重要机制,它们可以显著提高应用程序的性能和效率。本篇将深入探讨JNDI(Java Naming and Directory Interface)数据源、...
本文档介绍了一个具体的项目——“Java Web网络留言板2”,它利用了JDBC数据源和连接池技术来实现高效的数据访问。 #### 二、项目背景 随着互联网的发展,用户对于网站的交互性要求越来越高,留言板作为用户反馈的...
数据源连接池是数据库应用程序中的重要组成部分,它有效地管理和复用数据库连接,避免了频繁创建和销毁连接导致的性能开销。本配置教程将详细解析如何进行数据源连接池的设置,以提升应用的效率和稳定性。 首先,...
springboot+mybatis多数据源+动态数据源配置(连接池),mysql数据库,代码实现了简单的读写分离,但是不建议这种操作,建议使用数据库中间件进行读写分离,例如使用mycat进行读写分离主从热备,使用该代码对于多个...
数据源连接池是Java应用程序中一个非常重要的概念,它能够有效地管理数据库连接,提高系统性能,减少资源浪费。本示例将介绍如何使用c3p0和JNDI(jtds组件)来实现数据库连接池。 首先,我们来看c3p0组件。c3p0是一...
. 连接池基本的思想,原理 数据库连接池技术的优点: c3p0的使用