浅析JAVA的数据库连接池技术

2020-08-13 14:39马刚孙炳润
科学导报·学术 2020年36期

马刚 孙炳润

摘  要:随着WEB技术的发展和电子商务时代的到来,以Java技术为核心的JSP技术应运而生。本文呢介绍了Java中使用的数据库连接技术———JDBC,综述了四种基于JDBC的数据库访问机制,并且在Tomcat服务器上用JavaBean实现了SQLServer2000的数据库连接池。

关键词:JSP;JDBC;连接池;JavaBean

一、引言

JSP将Java作为其脚本语言,在传统的HTML文件中加入Java程序片段和JSP标签,因此JSP也继承了Java语言特点。在使用JSP技术开发基于数据库的动态Web应用程序中,与数据库的连接的管理性能会影响到整个应用程序的可伸缩性。

二、Java中数据库连接技术简介

JDBC可分为4种类型:

(1)JDBC-ODBC桥

最初的数据库连接方式是借助各数据库厂商提供的差异性极大的数据库驱动接口来实现的,因此其实现非常繁琐并且通用性差,具有很大的局限性。为此,微软首先提出了通用的数据库连接机制和标准以实现各种不同关系型数据库统一的互联规范,该规范即为ODBC(开放式数据库连接)。而JDBC-ODBC桥实质上是Java提供的一种以JDBC为介质,通过传统的ODBC驱动程序来访问数据库的方法。通过使用JDBC中连接ODBC驱动的驱动程序,即可实现这种数据库连接。该方案需要在本地安装ODBC类库和驱动程序。

(2)Java到本地

APIJDBC-ODBC桥由于采用了一种间接的数据库驱动方式,因此,效率上打了一定的折扣。一种较为高效的JDBC连接方法是JDBC驱动程序使用Java本地接口直接调用本地的数据库API,从而实现对数据库的连接和对数据的操纵。该方案也要求在本地安装连接目标数据库的类库。

(3)Java到网络协议

这类JDBC驱动程序是纯Java的驱动程序,它通过一定的网络协议与数据库服务器上的JDBC中间件通信。由于该类驱动程序不要求在访问数据库的Java程序各地都安装目标数据库的类库,因此,它是最灵活的JDBC方案,使得程序可以通过网络协议与不同的数据库进行通信。

(4)Java到数据库协议

这类驱动程序也是纯Java程序实现的,它通过实现一定的数据库协议直接与数据库通信。由于该方案直接与数据库通信,因此,其效率是4种方案中最高的。通常,Java应用程序访问数据库的过程分为如下4个步骤:(1)装载数据库驱动程序。2)通过JDBC建立数据库连接。3)访问数据库,执行SQL语句。4)断开数据库连接。

三、JDBC数据库连接池技术

数据库连接池最基本的思想就是预先建立一些连接放置于内存对象中以备使用,当程序中需要建立数据库连接时,只须从内存中取一个来用而不用新建。使用完毕后只需放回内存即可,而连接的建立、断开都有连接池自身来管理(见图1)。

同时还可以通过设置连接池的参数来控制连接池中的连接数、每个连接的最大使用次数,还可以通过其自身的管理机制来监视数据库连接的数量、使用情况等,连接池的使用大大提高了程序效率。连接池的基本属性主要有:连接池中连接数量下限和上限、一个连接的最大使用次数、一个连接的最长空闲时间、同一时间的最大连接数。这些属性定义了连接池与其中的每个连接的有效状态值。连接池的自我管理,实际上就是通过定时对每个连接的状态、连接的数量进行判断而进行相应的操作。当前国内的数据库连接池的解决方案主要是通过创建封装DriverManager的包DBConnection,通过该包来实现数据库连接的复用管理。自JDBC2.0推出以后,一种优于DriverManager解决方案已经出现,它就是利用JDBC2.0中的DataSource来实现数据库连接池,以替代1.0中提供的DriverManager类。DataSource是一个由JDBC驱动程序管理的包含数据库连接信息的数据对象,可以和JNDI(JavaNamingDirectoryInterface)命名服务协同工作,一个数据源对象注册到JNDI名字服務后,应用程序就可以从JNDI服务器上取得该对象,并使用它和数据源建立连接。这样与连接有关的信息就可以在DataSource对象的属性中修改,无需改动使用这个数据源的应用程序,因此增强了应用程序的可移植性、可维护性。

四、连接池的建立和实现

目前的JDBC驱动中基本都包含了DataSource接口的实现,但不少都没有包含基于DataSource的数据库连接池的实现,如SQLServer2000的JDBC驱动中就没有这种数据库连接池。但在当前的主流应用服务器上都包含了基于DataSource的数据库连接池的实现。如:Weblogic、Websphere、Tomcat等。本文以Tomcat7+SQLSERVER2018为平台来研究如何用JavaBean实现SQLSERVER2000数据库连接池。

将连接池部分采用JavaBean的形式进行实现,这样不仅页面易于维护,而且代码也得到重用。JavaBean是经编译过的class文件,源代码也得到保密。而且将用户名和密码封装在class文件内对数据库也起到安全保护作用。

五、结束语

连接池技术可以更加高效地连接并操作各种数据库大大降低了系统开销,提高了数据库访问的速度。笔者发现,数据库连接池技术可使开发效率明显得到提高,代码维护代价大大降低,访问效率也得到显著提高,使有限的计算机系统资源为更多的用户提供更加安全可靠的服务。

参考文献

[1] 李肃义,李洋.在JSP中使用JavaBeans连接数据库[J].吉林大学学报(信息科学版),2002,20(3):78-79.

[2] 范新民.基于JSP、JDBC技术动态访问Web数据库的实现方案[J].福建师范大学学报(自然科学版),2002,18(2):33-35.

[3] 林元元.JDBC 连接 MySQL 数据库的方法浅析 [J].长沙通信职业技术学院学报,2009,(01).

[4] 高伟,李爽,杜瑞庆.基于 JDBC 的 SQL Server 数据库访问 [J].福建电脑,2008,(01).