廖梦虎(武汉铁路职业技术学院电子电气工程系,湖北 武汉430205)
JSP(Java Server Pages)是由Sun公司倡导、许多公司参与一起建立的一种动态网页技术标准,它是在传统的网页 HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易,因而在动态网页实现中,具有比PHP和ASP.NET无可比拟的优势。使用JSP开发的Web应用,既能在Linux下运行,也能在其他操作系统上运行。JSP具备了Java技术的简单易用特点,完全的面向对象,具有平台无关性且安全可靠。下面,笔者主要介绍了JSP中访问数据库的常用方法。
JDBC(Java DataBase Connectivity,Java数据库连接)是SUN公司提供的与平台无关的数据库标准API(Application Programming Interface,应用程序设计接口),是由一组用Java语言编写的类和接口组成,这些类和接口位于java.sql包中。JDBC为数据库开发人员提供了一个标准的API,使得开发人员利用Java语言就可开发访问数据库的应用程序。
ODBC是Microsoft公司开发的标准数据库访问接口,使用这个接口,无须修改程序就可以访问各种不同的数据库[1]。通过JDBCODBC桥连接数据库的示意图如图1所示。
DBC-ODBC桥驱动程序主要功能是把JDBC API调用转换成ODBC API调用,然后ODBC API调用针对供应商的ODBC驱动程序来访问数据库,即利用JDBC-ODBC桥通过ODBC来存取数据源[2-4]。
图1 JDBC-ODBC桥连接数据库示意图
应用程序在使用JDBC-ODBC桥连接数据库之前,必须将桥驱动程序类sun.jdbc.odbc.JdbcOdbcDriver添加到名为jdbc.drivers的java.lang.System属性中,或用Java类加载器将其显式地加载。Java类加载器加载方法如下:
加载时,ODBC驱动程序(与所有JDBC驱动程序一样)将创建它自己的实例,同时在JDBC驱动程序管理器中进行注册。只要本地机装有相关的ODBC驱动,那么采用JDBC-ODBC桥几乎可以访问所有的数据库,JDBC-ODBC方法对于客户端已经具备ODBC Driver的应用是可行的。
通过JDBC专用驱动程序实现数据库访问的方法是通过Java提供的用于各种数据库(MSSQL Server,Oracle,DB2,sybase,MySQL等)的专用驱动程序来实现对数据库的访问。在使用这种方法之前,首先将相关的数据库专用驱动程序放到服务器的ClassPath路径下,然后在JSP程序中创建数据库连接就可以使用数据库中的信息进行数据处理操作。纯JDBC连接数据库方式如图2所示。
JDBC连接数据库分为2个步骤:加载驱动程序和建立连接。
图2 JDBC连接数据库方式
为了与特定的数据库或数据源相连,JDBC必须加载相应的驱动程序。驱动程序可以是JDBC-ODBC桥接驱动程序,也可以是数据库厂商提供的纯JDBC驱动程序。JSP中加载驱动程序使用Class.ForName方法,方法如下:
1)JDBC-ODBC桥连接驱动程序加载。JDBC-ODBC桥连接驱动程序加载方法如下:
2)纯JDBC驱动方式加载。纯JDBC驱动方式加载也使用Class.forName方法,其格式如下:
其中,url为某一数据库连接驱动。
当数据库连接成功后,JSP使用DriverManager类的getConnection方法建立与数据库或数据源的连接,该方法有2种重载形式[5]:
其中,参数url必须是一个符合JDBC URL(URL,统一资源定位器)规范的字符串;参数user和password是指登录数据库所需要的用户名和密码。JDBC URL字符串的格式如下:
其中,jdbc指连接数据库或数据源的协议,在JDBC URL中总是jdbc;<subprotocol>指驱动程序或数据库连接机制,使用JDBC-ODBC桥连接时固定是odbc,它也可以是一个网络服务名字;<subname>根据<subprotocol>不同,可能是数据源的名称,或是定位数据库的一串字符。
使用JDBC-ODBC桥连接数据库,必须建立ODBC数据源(Data Source Name,DSN),使用ODBC子协议连接到数据库。DSN包括系统DSN、用户DSN和文件DSN 3种,在设置供Web服务器使用的DSN时,必须使用系统DSN。下面的实例是通过JDBC-ODBC桥连接数据库,系统数据源可使用Windows的ODBC数据源管理器配置。连接数据库的代码如下:
对于Access数据库,可以不建立数据源,直接使用下面的方式建立连接:
使用专用JDBC驱动程序连接数据库不需配置数据源,但需配置JDBC工作的环境变量。
1)将数据库的JDBC驱动加载到classpath中,在基于JSP的WEB应用实际开发过程中,通常把目标数据库产品的JDBC驱动复制到WEB-INF/lib下。
2)加载JDBC驱动,并将其注册到DriverManager中。下面是一些主流数据库的JDBC驱动加裁注册的代码:
3)建立数据库连接,取得Connection对象。程序代码如下:
[1]巩建学.JSP中连接数据库常用的方法 [J].电脑开发与应用,2009,22(7):79.
[2]张洋.JDBC数据库访问技术 [J].电脑编程技巧与维护,2009(22):48.
[3]万芳 .基于JSP技术中数据库的开发应用 [J]科技传播,2009(12上):98-99.
[4]罗在文.JSP技术访问SQL Server数据库的设计与实现 [J].长春理工大学学报(自然科学版),2010,33(3):145-148.
[5]向学哲.JSP程序设计教程 [M].北京:人民邮电出版社,2007.