JDBC学习(九、连接池技术)

一、数据库连接池

    普通的JDBC数据库连接(Connection对象)使用 DriverManager 来获取,每次向数据库建立连接的时候都要将 Connection 加载到内存中,再验证用户名和密码(得花费0.05s~1s的时间)----> 建立JDBC连接的开销(成本)是很多。需要数据库连接的时候,就向数据库要求一个,执行完成后再断开连接。这样的方式将会消耗大量的资源和时间。
    数据库的连接资源并没有得到很好的重复利用.若同时有几百人甚至几千人在线,频繁的进行数据库连接操作将占用很多的系统资源,严重的甚至会造成服务器的崩溃。
      对于每一次数据库连接,使用完后都得断开。否则,如果程序出现异常而未能关闭,将会导致数据库系统中的内存泄漏,最终将导致重启数据库。
      这种开发不能控制被创建的连接对象数,系统资源会被毫无顾及的分配出去,如连接过多,也可能导致内存泄漏,服务器崩溃.
连接池最大的好处: 重复利用了每一个Connection对象,节省了性能开销。


解决方案:把每次操作完的Connection对象,不要直接关闭,而是存储到缓冲区中,以供多次重复使用,下次需要再获取连接池对象,不是从DBMS中获取,而是直接从缓冲区中获取,释放Connection对象,就是归还于缓冲区中。--->数据库连接池



二、连接池概述

在Java中,连接池使用javax.sql.DataSource接口来表示连接池/数据源,注意:DataSource和JDBC一样仅仅只是一个接口,由各大服务器厂商来实现(Tomcat,JBoss等)。
常用的DataSource的实现:
    C3P0:  Hibernate推荐的,但是该连接池在07年之后就不再更新了,不建议使用:性能太太差了。
    DBCP:  Apache组织的项目,Spring推荐的.  真心不错。
    Druid:  阿里巴巴的项目(德鲁伊),世界上最好连接池。
DataSource(数据源)和连接池(Connection Pool)是同一个。
===============================

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值