JDBC 数据库连接池

2018-11-10  本文已影响3人  指间Hrc

前言:

传统的基于数据库开发 web 项目时,基本是以下步骤:

1、在主程序中建立数据库连接

2、进行 SQL 操作

3、断开数据库连接

而对于这种模式,会存在一些问题:

每次操作数据库从获取连接,建立连接,再验证用户名和密码,都需要执行完再断开连接,这样会消耗大量的资源和时间,同时也导致了数据库连接没有得到很好的复用。若同时访问数据库的数量非常庞大,将占用大量的系统资源,容易导致数据库服务器奔溃。在关闭连接的时候出现异常而造成关闭失败,容易造成内存泄漏,迫使数据库重启,而不计后果的分配数据库连接数也会导致内存泄漏。

为了解决以上问题,可以采用数据库连接池。

数据库连接池:

为数据库建立一个“缓冲池”,预先放入一定数量的连接,当需要建立连接时,只需从里面取,使用完毕后再放回去,以达到复用和节省资源的目的。

允许应用程序重复使用一个连接,而不是重复建立。

两种开源的数据库连接池:

1、DBCP

2、C3P0

DBCP 使用:

1、引用以下几个 jar 包:

DBCP下载地址

POOL下载地址

LOGGING下载地址

2、使用代码初始化配置信息:

3、使用配置文件方式初始化:

在 jdbc.properties 文件里填写下面信息:

参数名对应 DataSource 里面的方法名去掉 set 且首字母小写。

代码里面初始化配置的信息:

获取连接成功。

C3P0 使用:

1、引用以下 jar 包:

C3P0下载地址

2、使用代码初始化配置信息:

跟 DBCP 类似,用法差不多。

3、使用配置文件初始化信息:

这个和 DBCP 不一样,C3P0 使用的 XML 文件来填写配置信息。

在 SRC 目录下新建一个 XML 文件,名称必须为 c3p0-config.xml。

然后在代码里面初始化:

c3p0Config 对应配置文件 <named-config/> 的 name,如果不指定名称,则使用默认的配置。

对于使用数据库连接池,通过初始化配置文件的方式可以方便的切换数据库,不仅仅是 MySQL,还有 Oracle 。对于这两种连接池,hibernate 官方推荐使用 C3P0。

以上为本人的一些学习笔记,如有出错欢迎指正,陆续更新!!!

上一篇 下一篇

猜你喜欢

热点阅读