JDBC 数据库连接池
前言:
传统的基于数据库开发 web 项目时,基本是以下步骤:
1、在主程序中建立数据库连接
2、进行 SQL 操作
3、断开数据库连接
而对于这种模式,会存在一些问题:
每次操作数据库从获取连接,建立连接,再验证用户名和密码,都需要执行完再断开连接,这样会消耗大量的资源和时间,同时也导致了数据库连接没有得到很好的复用。若同时访问数据库的数量非常庞大,将占用大量的系统资源,容易导致数据库服务器奔溃。在关闭连接的时候出现异常而造成关闭失败,容易造成内存泄漏,迫使数据库重启,而不计后果的分配数据库连接数也会导致内存泄漏。
为了解决以上问题,可以采用数据库连接池。
数据库连接池:
为数据库建立一个“缓冲池”,预先放入一定数量的连接,当需要建立连接时,只需从里面取,使用完毕后再放回去,以达到复用和节省资源的目的。
允许应用程序重复使用一个连接,而不是重复建立。
两种开源的数据库连接池:
1、DBCP
2、C3P0
DBCP 使用:
1、引用以下几个 jar 包:
2、使用代码初始化配置信息:
3、使用配置文件方式初始化:
在 jdbc.properties 文件里填写下面信息:
参数名对应 DataSource 里面的方法名去掉 set 且首字母小写。
代码里面初始化配置的信息:
获取连接成功。
C3P0 使用:
1、引用以下 jar 包:
2、使用代码初始化配置信息:
跟 DBCP 类似,用法差不多。
3、使用配置文件初始化信息:
这个和 DBCP 不一样,C3P0 使用的 XML 文件来填写配置信息。
在 SRC 目录下新建一个 XML 文件,名称必须为 c3p0-config.xml。
然后在代码里面初始化:
c3p0Config 对应配置文件 <named-config/> 的 name,如果不指定名称,则使用默认的配置。
对于使用数据库连接池,通过初始化配置文件的方式可以方便的切换数据库,不仅仅是 MySQL,还有 Oracle 。对于这两种连接池,hibernate 官方推荐使用 C3P0。
以上为本人的一些学习笔记,如有出错欢迎指正,陆续更新!!!