1. 在项目的实际开发中,连接数据库一般都会使用两种方式。

(1) 使用JDBC直接连接数据库,其他程序每访问一次数据库,访问程序直接跟数据库打交道,建立一次数据库连接,用完在释放连接资源。

(2) 使用连接池技术,建立一个连接池,由连接池连接到数据库,在将数据库连接对象connection放到连接池中,此时其他程序访问数据库时,不是直接和数据库打交道,而是和连接池交互,当使用完连接资源后释放,该连接资源将会放回池里,等待下一次使用。

2.下面我们进一步来分析这两种连接方式的差异。

(1)使用JDBC直接连接数据库,如图所示:

JAVA连接FTP java连接池_连接池

这种方式当成千上万个用户方访问数据库时,就需要直接从数据库获取成千上万个Connection对象,这对数据库来说,无疑会造成巨大的压力,会导致整个数据库服务器奔溃。性能会受很大的影响。

(2)使用连接池连接数据库,如喜下图所示:

JAVA连接FTP java连接池_连接池_02

使用连接池技术,就会从根本上解决使用JDBC连接的问题。即使有成千上万用户访问数据库时,而不是直接和数据库打交道,而是从连接池中得到事先放在池中的Connection连接对象,而连接池只和数据库连接一次。这样就保证了数据访问性能。

3.最后,来详细说明以下连接池技术在java中的应用。

目前比较流行的连接池有以下几种:DBCP、c3p0(从2007年已停止更新,且性能也不好,不建议使用)、BoneCP、Druid(阿里巴巴开发的,国产连接池,性能很好)等等,还有很多就不一 一列举了。

4.下面就以dbcp连接池为例,详细介绍下dbcp连接池在java中的真正使用。jdk以1.8为例,数据库以mysql1.7。

(1) 在正式使用之前,先建立开发环境以及导入相关架包。

commons-dbcp2.5.jar 2.5版本支持jdk1.8,以及commons-pool2.4.3.jar以及依赖包commons-loggin1.2.jar包,这个包主要用于日志采集。最后在导入相关数据库的驱动包,MYSQL驱动包mysql-connector-java-5.1.46-bin.jar即可。

(2)建立一个java工程,编写DBUtils工具类,这个类主要实现DBCP连接池技术。

主要步骤为:

(1.1)加载连接池的配置文件

(1.1)建立连接池

(1.2) 连接池从数据库获取connection对象放在池中

(1.3) 得到连接池中的connection对象

DBUtils.java类

JAVA连接FTP java连接池_JAVA连接FTP_03

最后在src同级目录在,创建文件夹confing,将dbcp.properties文件放到该目录下即可。

JAVA连接FTP java连接池_数据库_04