`
java-mans
  • 浏览: 11508895 次
文章分类
社区版块
存档分类
最新评论

连接池的引入

 
阅读更多
在我们程序中,访问数据库的时候,经常是这么写的,每访问一次就要建立一次数据库连接,存取数据,关闭连接。其实这种行为是非常耗费资源的。

为了改进这种现象,引入了连接池。

什么是连接池呢?

通俗的讲,连接池就是一个容器,服务器启动的时候给你建立好连接,每次需要的时候,直接去容器中取,用完之后访问容器中。

因此这种情况只需开始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包

    tomcat 连接数据库的jar包 commons-dpcp.jar ,commons-pool.jar 配置好了,就能解决连接池配置方面的问题

    配置Druid连接池需要的jar包-druid-1.0.15.jar

    配置Druid连接池需要的jar包

    强大的Java连接池类 for .Net

    该项目引入引用记数模式,同时对数据库连接申请进行分级处理,合理利用分级可以增加连接池连接提供数目。假如有10个实际连接,最大分配数为10的情况下。该连接池可以同时提供10~100个数据库连接,具体参看代码中的...

    强大的Java连接池类 for Java 附带源代码。

    该项目引入引用记数模式,同时对数据库连接申请进行分级处理,合理利用分级可以增加连接池连接提供数目。假如有10个实际连接,最大分配数为10的情况下。该连接池可以同时提供10~100个数据库连接,具体参看代码中的...

    java实现RQBBITMQ连接池

    基于数据库连接池改编的RabbitMQ java实现,包含效率测试以及生产者消费者连接池的使用demo。实测下来,运行效率是非连接池使用效率的5倍左右。使用方便简单,不需要引入其他什么jar,直接能在项目中使用。

    HikariCP数据库连接池所需jar包

    HikariCP数据库连接池所需jar包,HiKariCP是数据库连接池号称性能最好,可以完美地PK掉其他连接池。

    阿里Druid连接池技术需要的jar包

    阿里Druid连接池技术需要的jar包

    阿里druid连接池1.1.21版本(支持达梦数据库)

    基于阿里的druid连接池,自己把对国产数据库达梦的支持加上去了,支持了wall方式,暂时没发现什么问题 :) 使用方式同原版

    数据库连接池相关 jar 包

    java开发中,比如写一个DbUtil.java,需要用到数据库连接池,此时需要引入相关 jar 包:commons-dbcp.jar 、 commons-pool.jar

    数据连接池有用的jar包

    数据库连接时必须使用的JAR包;程序出现问题DriverCOnnection的异常时 腰间差这个包是否被引入

    jedis-2.9.0.jar及连接池分享

    jedis-2.9.0.jar及连接池分享!有需求的可以直接下载.用于引入jedis

    Golang你一定要懂的连接池实现

    我们从连接池获取连接,请求完毕后再将连接还给连接池;连接池帮我们做了连接的建立、复用以及回收工作。 在设计与实现连接池时,我们通常需要考虑以下几个问题: 连接池的连接数目是否有限制,最大可以建立多少个...

    c3p0连接池所需的全部包.zip

    C3P0是一个用于管理JDBC连接池的Java库。连接池是一种技术,它允许应用程序通过事先创建并维护一组数据库连接,而不是每次需要数据库访问时都重新创建一个新连接。这有助于提高性能,减少资源开销,以及更有效地管理...

    强大的Java连接池类 for Java

    该项目引入引用记数模式,同时对数据库连接申请进行分级处理,合理利用分级可以增加连接池连接提供数目。假如有10个实际连接,最大分配数为10的情况下。该连接池可以同时提供10~100个数据库连接,具体参看代码中的...

    连接池(内含dbcp c3p0)jar包

    此含dbcp c3p0 连接池的jar 文件,下载后可直接引入项目使用,已经验证

    基于面向对象技术的通用LDAP目录访问连接池

    针对LDAP目录访问中的性能、可靠性、开发复杂度等 问题,该文将连接池的概念引入LDAP目录访问,实现了一个功能完整的通用LDAP连接池系统。通过降低建立/关闭LDAP连接的开销大幅度 地提高了应用程序访问LDAP的...

    JDBC 数据库连接池

     为了解决这个问题,引入了数据库连接池技术(个人认为数据库连接池技术是为解决这个问题的),它是批量创建一批数据库连接,放到一个数据库连接池,在需要数据库连接时,像这个池子拿,用完后则将数据库连接还回...

    java,mysql第三方开源连接池

    java中连接mysql的第三方开源连接池,jar包,引入工程后可直接使用其创建连接池等

    Spring+Hibernate+Proxool连接池

    是spring中引入连接池 博文链接:https://yanghaiskys.iteye.com/blog/215424

Global site tag (gtag.js) - Google Analytics