DBpool连接池的使用与总结

来源:互联网 发布:网络金融征信系统查询 编辑:程序博客网 时间:2024/06/04 19:12

一、连接池介绍

数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出。对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标。数据库连接池正是针对这个问题提出来的。数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而再不是重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。这项技术能明显提高对数据库操作的性能。

二、连接池的优点

连接池是创建和管理一个连接的缓冲池的技术,这些连接准备好被任何需要它们的线程使用。

这种把连接“汇集”起来的技术基于这样的一个事实:对于大多数应用程序,当它们正在处理通常需要数毫秒完成的事务时,仅需要能够访问JDBC 连接的 1 个线程。当不处理事务时,这个连接就会闲置。相反,连接池允许闲置的连接被其它需要的线程使用。

事实上,当一个线程需要用 JDBC 对一个 GBase 或其它数据库操作时,它从池中请求一个连接。当这个线程使用完了这个连接,将它返回到连接池中,这样这就可以被其它想使用它的线程使用。

  当连接从池中“借出”,它被请求它的线程专有地使用。从编程的角度来看,这和用户的线程每当需要一个 JDBC 连接的时候调用DriverManager.getConnection() 是一样的,采用连接池技术,可通过使用新的或已有的连接结束线程。

  连接池可以极大的改善用户的 Java 应用程序的性能,同时减少全部资源的使用。连接池主要的优点有:

  减少连接创建时间

  虽然与其它数据库相比 GBase 提供了较为快速连接功能,但是创建新的 JDBC 连接仍会招致网络和 JDBC 驱动的开销。如果这类连接是“循环”使用的,使用该方式这些花销就可避免。

  简化的编程模式

  当使用连接池时,每一个单独的线程能够像创建了一个自己的 JDBC 连接一样操作,允许用户直接使用JDBC编程技术。

  受控的资源使用

  如果用户不使用连接池,而是每当线程需要时创建一个新的连接,那么用户的应用程序的资源使用会产生非常大的浪费并且可能会导致高负载下的异常发生。

  注意,每个连到 GBase 的连接在客户端和服务器端都有花销(内存,CPU,上下文切换等等)。每个连接均会对应用程序和 GBase 服务器的可用资源带来一定的限制。不管这些连接是否在做有用的工作,仍将使用这些资源中的相当一部分。

连接池能够使性能最大化,同时还能将资源利用控制在一定的水平之下,如果超过该水平,应用程序将崩溃而不仅仅是变慢。

三、连接池在项目中的使用和配置

连接池的优点落实到了两处,一是多线程连接,二是减少频繁连接。在高并发的web项目中可以使用连接池,当客户端频繁访问的时候,web服务器需要频繁地向数据库存取数据,此时如果不用连接池,直接创建连接,有可能会导致系统崩溃。最近需要做一个短信自动任,主要是读取短信上行表,获取未处理的短信,处理之后在更改处理状态,这个需要持续的扫面数据库,不停地连接数据库,刚好用连接池可以解决频繁连接的问题,减少资源的消耗。

连接池的使用比较简单,只需要配置好文件即可,连接方式和数据库驱动的类型也可以全部在配置文件中配置好,具体的配置如下:

 

配置文件写好后,需要创建一个DBConnectionManager类,代码如下:

最后在项目的dao层需要使用的时候只需要如下调用即可:

原创粉丝点击