《电子技术应用》
您所在的位置:首页 > 其他 > 业界动态 > 基于Java的数据库Web访问技术

基于Java的数据库Web访问技术

2008-12-22
作者:方昭辉 陈冬霞
1、引言
    随着Internet的快速发展,在网站建设中使用数据库已必不可少。基于Java语言的JSP、Servlet、JavaBean通过JDBC技术可以方便的访问数据库,生成动态网页" title="动态网页">动态网页。本文首先介绍了JSP、Servlet、JavaBean、JDBC技术,分析了在网站建设中通过JDBC对数据库进行访问的原理和方法。在此基础上,提出了一个建设动态Web网站的模型。
2、主要技术简介
2.1 Servlet

    Servlet是运行在服务器端的Java应用程序" title="应用程序">应用程序,用户可以用浏览器通过URL来调用Servlet程序。开发者可以自由地选择Web服务器、开发平台和工具。Servlet是基于线程的,可用多线程机制同时为多个请求服务,保证了高效率运行。用Servlet输出HTML代码如下:
PrintWriter out=response.getWriter();
out.println(“”);
out.println(“#Servlet</head>”);
out.println(“”);
out.println(“Hello World”);
out.println(“”);
out.close();
2.2 JSP
    JSP使用类似于XML的标签和用Java语言编写的脚本程序来封装产生页面内容的逻辑。从上节可见,用Servlet输出HTML语言很不方便。而JSP可以嵌入HTML中,把用户界面和页面内容分开,设计者可以不更改内容而修改页面风格,方便的开发和维护动态网页。首次访问JSP文件时,JSP引擎把JSP源代码转变成Servlet代码,再编译成class文件,由Java虚拟机(JVM)解释执行。同一JSP网页再被请求时, Web服务器就直接执行已编译的程序。
    JSP包括很多内置的服务器和应用程序构建对象:GET/POST请求的参数的客户端" title="客户端">客户端请求Request;网页传回客户端的响应response;管理网页的属性pageContext;与请求有关的会话期session;正在执行的内容application;用来传送响应的输出流out;servlet的架构对象config;网页本身page;针对错误网页的exception等等。这些对象让开发者摆脱许多繁琐的具体工作。
2.3 JavaBean
    JavaBean(简称Bean)是一种基于Java的可重用组件,用来执行复杂的计算任务、或负责与数据库的交互。JavaBean有五个特性:支持内省、支持定制、支持事件、支持属性、支持持续。有page(网页)、request(响应)、session(会话)、application(应用程序)4种不同的生命周期。
2.4 JDBC
    JDBC(Java Database Connectivity)是Java连接数据库" title="连接数据库">连接数据库的工业标准,为基于SQL的数据库访问提供调用级应用编程接口" title="编程接口">编程接口。JDBC包括两组分别面向应用程序和数据库驱动程序开发人员的API,以及将前者向后者转化的内在封装逻辑。
面向数据库驱动程序开发人员的JDBC Driver API,是由数据库厂商开发的。提供给开发人员用来编写前端应用程序的JDBC API,对任何数据库都是一样的。用户使用标准的SQL语句进行查询,查询语句经驱动程序管理器处理,变成适应于特定数据库的查询语言,然后向下传递给相应的驱动程序,再由驱动程序与数据库管理系统进行通信,实现数据库的读取和操作。由于JDBC具有平台无关性和数据库访问一致性两大优点,开发人员编写的程序只需稍作改动就可以在不同的平台上访问不同的数据库系统。
    JDBC驱动程序有以下4类:
(a)JDBC-ODBC桥,将JDBC调用转化为ODBC(Open Database Connectivity)调用的“桥梁”,通过ODBC驱动程序来提供JDBC对数据库的访问。
(b)本机应用编程接口部分Java驱动程序(Native-API Partly-Java Driver),将JDBC调用转换为基于客户端API的调用。
(c)数据库中间件的纯Java驱动程序(Net-Protocol All-Java Driver),将JDBC调用转换成为中间件供应商的协议,然后通过中间件服务器将该协议转换为DBMS协议。
(d)直接连接数据库的纯Java驱动程序(Native-Protocol All-Java Driver),将JDBC调用转换为特定数据库直接使用的网络协议,这一类驱动程序通常由数据库厂商自己开发。
3.实现数据库的访问
3.1 使用JDBC实现数据库访问的一般步骤
(a)加载驱动程序,例如加载Oracle数据库的驱动程序:
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
(b)建立连接:
Connection con=DriverManager.getConection(Url,“user”,“Password”);Url是数据库的统一资源地址,格式如下:jdbc:子协议名:附加信息。user是用户名,password是口令。
(c)对数据库进行操作,例如进行查询并返回结果集:
Statement stmt=con.createStatement();
ResultSet rs=stmt.executeQuery(“SELECT *  FROM DBName”);
当然,也可以执行插入、更新、删除等SQL语句。
3.2 在Servlet、JSP、JavaBean中实现数据库访问
Servlet和JavaBean可以象其他Java程序一样,直接调用JDBC实现数据库的访问。在JSP中可以直接加入数据库访问语句。例如实现数据的插入:
<%@page contentType="text/html; charset=gb2312"%>
<%@page import="java.sql.*"%>
<%@page import="java.io.*"%>

插入数据


<%String name=null;name=request.getParameter("name");
 if(name==null)
{%>

名字:




<%}
else
{
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
con=DriverManager.getConnection("jdbc:oracle:thin:@"+Server+":"+"1521"+":"+dbName,UserID,UserPWD);
Statement stmt=conn.createStatement();
stmt.executeUpdate("insert into table(name) values(`"+name+")");
out.println("数据插入成功!");
stmt.close();conn.close();
}%>


    JSP对于在Web应用中集成JavaBean组件提供了完善的支持,这种支持不仅能缩短开发时间,避免重复开发,也为JSP应用带来了更多的可伸缩性,因此更好的方法是利用JavaBean实现数据库访问:
 (a) Bean类源文件的建立。
Bean对象文件名为Db.java,程序代码如下:
package sample;
import java.io.*;import javax.servlet.http.*;import java.sql.*;
pulic class Db {
private Connection con=null;
public void Db(){}
private void BulidConnection(){ 
try{
         DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
con=DriverManager.getConnection("jdbc:oracle:thin:@"+Server+":"+"1521"+":"+dbName,UserID,UserPWD);
catch(Exceptionex)  {System.out.println(ex.getMessage());} }
public Connection getConnection()
{ if(con==null)  BulidConnection();
Return con;}
Public void close(){
try{ con.close();con=null;}  
catch(SQLException ex){ ex.printStackTrace();} }
 (b)  将上面的文件编译生成Db.class文件。在JSP文件中使用〈jsp:useBean〉标记来调用Bean。〈jsp:useBean〉标记用“id”属性识别Bean,“class”属性查找Bean,“scope”属性确定范围。本例中,在Bean中将对象存入session中,用以下代码可调用Db.class:
〈jsp:useBean id=“db”scope=“session”class=“sample.Db”/〉
    此例只是使用Bean实现了连接数据库的操作,实际应用中可以使用Bean把常用的数据库功能都封装起来。这样不仅隐藏了许多复杂的操作,避免了在JSP文件中重复数据库访问代码。而且,Bean是编译为字节码存放的,数据库访问密码、用户名对于使用它的人来说是不可见的。
4.一个基于Java技术的网站模型
    目前,网站基本都采取B/S(浏览器/服务器)三层结构,即用户界面表示层、逻辑处理层、数据存储层。本文给出的采用Java技术的动态网站模型如下:Web服务器采用Apache,JSP引擎选用Tomcat,后台数据库采用Oracle数据库,JDBC数据库驱动程序选用Oracle提供的JDBC驱动程序。该模型用HTML设计用户界面,Servlet负责处理HTTP请求,完成具体处理流程的控制,JavaBean中封装访问数据库的逻辑,通过JDBC访问数据库,JSP负责将由JavaBean传回的数据用动态网页显示。这样可以将网页内容生成(业务逻辑)和内容显示(HTML)分离开,使结构更加清晰。图1显示了模型的体系结构。

 

5.结束语
    随着Internet的不断发展,Web站点中对数据库的应用越来越多。Jsp 、Servlet、JavaBean通过调用JDBC可以方便的访问数据库,加之其动态、高效、简洁与平台无关等特点,对动态Web应用的开发,提供了良好的支持。本文介绍了Servlet、Jsp、JavaBean通过JDBC访问数据库的原理和方法,并在此基础上,提出了一个构建动态Web网站的模型。

参考文献:
1 陈海山.深入Java Servlet网络编程.清华大学出版社,
2 张金涛.基于Linux的Apache+JSP+Oracle.清华大学出版社,
3 Danny Ayers,John Bell,Carl CalvertBettis等著,戴英,张晓晖,王辉等译.Java数据库编程指南.电子工业出版社,
4 李肃义,李洋. 在JSP中使用JavaBean连接数据库.吉林大学学报(信息科学版),第20卷第3期,2002年8月,Vol.20 No.3
5 范新民. 基于JSP、JDBC技术动态访问Web数据库的实现方案. 福建师范大学学报(自然科学版),第18卷第2期,2002年6月,Vol.18 No.2

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。