最初发表在这里。
连接池为什么能够提高性能呢? 打个比喻吧:
从前有一条河,河水弯弯向东流。河东有个村庄叫河东村,河西有个小镇叫河西镇,河东村的村民经常要跨过小河到河西镇去购买些日常用品,但是小河上没有桥啊,怎么办呢?村民只好每次过河的时候,千辛万苦,披荆斩棘,搭起一座独木桥,等买完东西回来的时候,再把桥给拆了。
这样过了许多年,村民们慢慢觉得这样不划算啊,每次河都要花那么大力气搭桥,当初何必把桥拆了呢。但想想这也不是办法,如果个个都不“过河拆桥”,那么用不了几年,河上不就全是破破破烂烂的独木桥吗,严重影响市容市貌啊。怎么办呢?大家想啊想,有一天终于想出个办法来了,成立一个独木桥管理委员会,专门管理在修桥事务,以供村民使用 。因为技术限制,大家造出来的桥只能一次只能供一个人使用,而且造型也不漂亮,因此委员会制定了一个策略:
1、过河的人要在委员会处领取“桥梁使用证”,一证一桥,用完需将证件交回给委员会。
2、委员会事先造好一定数量的桥,如10座,以供人们使用。
3、当有人需要过桥向委员会索取证件时,委员会检查当前是否有空闲的桥,有则派发使用证,如果当前造的桥都有人用,则检查是否桥的数量已经达到上限(20座),如果没有则马上派人新造一座桥,并向该村民派发通行证。
4、如果桥的数量已经达到预先设定的上限(20座)了,那么,委员会只好让申请人暂时等候,等前面的人回来交还使用证再给该村民派发。
5、如果某些桥在一定时间内没人使用,委员会就会它拆掉。
这样一来,村民们再也不用重复建设了,大大减少了对河岸树木的毁坏,保护了植被,杜绝了水土流失,于是风调雨顺,人们过上了快乐的生活。
河东村就是我们的应用,河西镇是数据库。连接池就像那个委员会吧,那个“桥梁使用证”就是DataSource返回的Connection了。那些独木桥就是物理连接,每台机器是有限制的,而且造价十分“昂贵”。村民们用完桥梁后,只能把证件交还给委员会,绝对不能把桥给拆了。
如果不用DataSource,我们直接用DriverManager来实现自己的连接池可以吗?可以,但必须首先解决一个问题:怎样防止村民在交还证件的时候顺便把桥给拆了(都是用Connection.close()).而且,有资料说直接使用DriverManager建立连接池是没有效果的,因为通过DriverManager的getConnection方法取得是数据库的物理连接,而这跟DataSource中不一样,是没有经过driver程序的优化的。
因此,我们还是尽量用DataSource吧,好处多多。
分享到:
相关推荐
在IT行业中,数据库连接池是优化数据库访问性能和资源管理的重要技术。连接池的基本思想是重用已建立的数据库连接,避免频繁创建和销毁连接带来的性能开销。本篇文章将深入探讨连接池的概念、工作原理以及如何在实际...
Tomcat 连接池和阿里 Druid 连接池都是常用的数据库连接池实现,但是它们有不同的特点和使用场景。下面是它们的比较: |特点|Tomcat 连接池|阿里 Druid 连接池| | --- | --- | --- | |性能|高效|高效| |可靠性|可靠...
Java实现连接池是一种提高数据库操作效率的技术,它通过管理和重用数据库连接,避免了频繁创建和销毁连接导致的性能开销。在Java中,我们通常使用第三方库来实现连接池,如Apache的DBCP、C3P0,或者更现代的HikariCP...
* 高性能:DataSource对象可以提供高性能的连接方式,可以减少新创建连接的数目,提高运行的性能。 * 易于配置:DataSource对象可以由系统管理员或者有相应权限的人来配置,减少了应用程序设计者的工作量。 * 灵活的...
总结来说,Druid是一款强大的数据库连接池组件,它以其高性能、监控完善和易扩展性深受Java开发者喜爱。在实际应用中,通过配置`DruidDataSource`和相应的配置文件,可以轻松实现对MySQL数据库的高效管理。
本教程将详细介绍如何在Java项目中使用Druid数据连接池连接PostgreSQL数据库,以实现一个简单的测试环境。 首先,我们需要了解Druid数据连接池的基本概念。Druid提供了一种高效、灵活的数据库连接管理方式,它可以...
### 数据库连接池的使用与配置详解 #### 一、引言 在现代Web应用程序开发过程中,数据库连接池技术的应用非常普遍。它能够显著提高应用性能,并减少资源消耗。本文将详细介绍如何在Tomcat 5.0.1环境中配置和使用...
此外,还可以根据需求配置其他的Druid属性,如初始化大小、最大活跃连接数、最小空闲连接数、超时时间等,以优化连接池的性能。 总之,SpringBoot通过自动配置使得数据库连接池的配置变得简单,而Druid作为一款强大...
`Tomcat连接池`是Java应用服务器中用于管理数据库连接的一种机制,它的目的是提高数据库连接的复用性,减少创建和销毁连接的开销,从而提升应用的性能和响应速度。Tomcat内置了多种连接池实现,如Apache的Commons ...
为了提高性能和资源利用率,开发人员通常会使用数据源连接池。本篇文章将详细讲解JDBC数据源连接池的配置和使用,以帮助你更好地理解和应用这一关键技术。 ### 1. 什么是数据源连接池 数据源连接池(DataSource或...
通过合理配置连接池参数,可以有效地提高数据库操作的效率,同时,使用JNDI能方便地在应用中查找和使用数据源,简化了数据库连接的管理。在实际开发中,理解并掌握这些知识点对于提升应用程序的性能和可维护性至关...
在Spring框架中,数据库连接池是管理数据库连接的关键组件,它能有效地提高应用程序的性能和资源利用率。在上述内容中,提到了两种常用的连接池实现:Apache的DBCP(BasicDataSource)和C3P0(ComboPooledDataSource...
数据库连接池技术对于提高Web应用的性能至关重要。通过合理配置连接池,可以有效减少数据库连接的创建与销毁次数,从而提升整体系统的响应速度。此外,选择合适的连接池实现(如DBCP、C3P0或HikariCP)以及正确配置...
连接池是一种提高应用程序性能和可靠性的技术,它可以将多个数据库连接组合成一个池,供应用程序使用。这样可以减少应用程序创建和销毁数据库连接的开销,从而提高应用程序的性能和可靠性。 GlassFish 连接池配置...
使用连接池技术时的配置 在本文中,我们将讨论使用连接池技术时的配置,特别是关于 Tomcat、MySQL 和 Eclipse 的...通过以上配置,我们可以使用连接池技术来管理我们的数据库连接,从而提高应用程序的性能和可扩展性。
数据库连接池是现代应用程序开发中的重要组成部分,尤其...在实际开发中,我们还需要考虑连接池的监控和调优,比如监控连接池的使用情况,根据性能指标调整参数,以及处理异常和错误情况,以保证系统的稳定性和高效性。
它在Java环境中被广泛应用于Web应用服务器,以优化数据库资源的管理,提高系统的性能和稳定性。在本压缩包中,包含的是`druid`项目的源代码和相关jar包,这为我们提供了深入理解其工作原理和定制功能的机会。 首先...
它通过预先创建并维护一定数量的数据库连接,避免了每次应用需要连接数据库时的开销,提高了系统的性能和响应速度。在Java中,有许多库可以实现连接池功能,如C3P0、DBCP、HikariCP以及我们今天要讨论的jTDS。 jTDS...
在IT行业中,数据库连接池是优化应用程序性能的关键技术之一,特别是在使用Java服务器页面(JSP)进行Web开发时。...这个例子中的"数据库连接池连接语句"可能包含了具体的配置示例,你可以参考其内容进行实践。