在我们程序中,访问数据库的时候,经常是这么写的,每访问一次就要建立一次数据库连接,存取数据,关闭连接。其实这种行为是非常耗费资源的。
为了改进这种现象,引入了连接池。
什么是连接池呢?
通俗的讲,连接池就是一个容器,服务器启动的时候给你建立好连接,每次需要的时候,直接去容器中取,用完之后访问容器中。
因此这种情况只需开始new 连接池对象,而不像原来每次访问数据库,每次new connection对象。
可以用这个图来表示一下:
现在java连接池有很多种。比如我们程序用的DBCP(Database Connection Pool)是一个依赖Jakarta commons-pool对象池机制的数据库连接池,Tomcat的数据源使用的就是DBCP。 Proxool是一个Java SQL Driver驱动程序,提供了对你选择的其他类型的驱动程序的连接池的封装。BoneCp是一个开源的快速的JDBC连接池。DDConnectionBroker:是一个简单,轻量级的数据库连接池。
那使用连接池的流程是如何呢?
- 首先,new 数据库连接池对象;
- 其次,按照连接池中的标签值创建初始数量的空闲数据库连接。
- 然后,当访问数据库请求时,直接从连接池中拿取一个连接。如果连接池中没有空闲的连接,并且连接数没有达到最大,则在容器中创建一个新的数据库连接。
- 继续, 对数据的操作。比如查询数据什么的。
- 然后, 操作完毕后,关闭数据库,则把连接放回连接池中。(没有真正释放连接,而是放回容器中)
- 最后,释放连接池对象。(真正的释放连接)
其中连接池的操作流程跟上下文参数有关,比如最大连接数,空闲连接数,还有等待的时间等。下一篇博客会介绍中上下文context文件的参数以及如何在Tomcat中配置连接池。
分享到:
相关推荐
tomcat 连接数据库的jar包 commons-dpcp.jar ,commons-pool.jar 配置好了,就能解决连接池配置方面的问题
配置Druid连接池需要的jar包
该项目引入引用记数模式,同时对数据库连接申请进行分级处理,合理利用分级可以增加连接池连接提供数目。假如有10个实际连接,最大分配数为10的情况下。该连接池可以同时提供10~100个数据库连接,具体参看代码中的...
该项目引入引用记数模式,同时对数据库连接申请进行分级处理,合理利用分级可以增加连接池连接提供数目。假如有10个实际连接,最大分配数为10的情况下。该连接池可以同时提供10~100个数据库连接,具体参看代码中的...
基于数据库连接池改编的RabbitMQ java实现,包含效率测试以及生产者消费者连接池的使用demo。实测下来,运行效率是非连接池使用效率的5倍左右。使用方便简单,不需要引入其他什么jar,直接能在项目中使用。
HikariCP数据库连接池所需jar包,HiKariCP是数据库连接池号称性能最好,可以完美地PK掉其他连接池。
阿里Druid连接池技术需要的jar包
基于阿里的druid连接池,自己把对国产数据库达梦的支持加上去了,支持了wall方式,暂时没发现什么问题 :) 使用方式同原版
java开发中,比如写一个DbUtil.java,需要用到数据库连接池,此时需要引入相关 jar 包:commons-dbcp.jar 、 commons-pool.jar
数据库连接时必须使用的JAR包;程序出现问题DriverCOnnection的异常时 腰间差这个包是否被引入
jedis-2.9.0.jar及连接池分享!有需求的可以直接下载.用于引入jedis
我们从连接池获取连接,请求完毕后再将连接还给连接池;连接池帮我们做了连接的建立、复用以及回收工作。 在设计与实现连接池时,我们通常需要考虑以下几个问题: 连接池的连接数目是否有限制,最大可以建立多少个...
C3P0是一个用于管理JDBC连接池的Java库。连接池是一种技术,它允许应用程序通过事先创建并维护一组数据库连接,而不是每次需要数据库访问时都重新创建一个新连接。这有助于提高性能,减少资源开销,以及更有效地管理...
该项目引入引用记数模式,同时对数据库连接申请进行分级处理,合理利用分级可以增加连接池连接提供数目。假如有10个实际连接,最大分配数为10的情况下。该连接池可以同时提供10~100个数据库连接,具体参看代码中的...
此含dbcp c3p0 连接池的jar 文件,下载后可直接引入项目使用,已经验证
针对LDAP目录访问中的性能、可靠性、开发复杂度等 问题,该文将连接池的概念引入LDAP目录访问,实现了一个功能完整的通用LDAP连接池系统。通过降低建立/关闭LDAP连接的开销大幅度 地提高了应用程序访问LDAP的...
为了解决这个问题,引入了数据库连接池技术(个人认为数据库连接池技术是为解决这个问题的),它是批量创建一批数据库连接,放到一个数据库连接池,在需要数据库连接时,像这个池子拿,用完后则将数据库连接还回...
java中连接mysql的第三方开源连接池,jar包,引入工程后可直接使用其创建连接池等
是spring中引入连接池 博文链接:https://yanghaiskys.iteye.com/blog/215424