admin 管理员组

文章数量: 887032


2024年1月16日发(作者:jscript script文件可以删除吗)

维普资讯

第21卷第1期 西南科 技大学学报 V缸.21 No.1 2O06年3月 Journal ofS叫thw伪t1 iversiwofScience andTed Mar.2006 JavaBean在访问数据库中的应用 莫佳 (华东交通大学信息工程学院江西南昌330013) 摘要:讨论了如何采用JavaBean技术封装对数据库的连接、查询以及更新等操作。介绍JSP(Java Server Pages) ̄ 的工作原理和特性以及在JSP中调用JavaBean的方法,结合。在线考试系统”软件的实现,论述了JavaBean技术在 应用程序频繁的访问数据库中的应用。 关键词:JSP(Java Server Pages) JavaBean JDBC(Java Database Connec6咖) 存储过程 数据库 中图分类号:TP393.09 文献标识码:A 文章编号:1671—8755(2oo6)ol—O022—04 Mo Jia (College ofInformation 咖,East China Jiaotong University, Nanchang 330013,以l, £,China) Abstract:Operations concerning connection。query and update ofdatabase by means ofJavaBean are dis. cussed.First。the work principle and characterisitcs of JSP technique nad the use of JavaBean in JsP are introduced.Second,the印plication of JavaBean in some frequendy—visited database like the software of “On—line Testing System”is elaborated;and finally the merits of htis methodology is concluded. Key words:JSP Java Server Pages);JavaBean;JDBC(Java Database Connectiivty);store process; database 在现代信息社会中,人们对计算机软件的品种、数量、功能、质量、成本以及开发时间提出了越来越高的 要求,在软件开发的过程中,尽可能重用已有的软件元素,有助于加快开发速度、提高软件生产效率,同时也 有利于提高软件质量…。软件元素的重用在基于Web的应用系统中也非常重要,在这样的系统中有许多动 态Web页面并发访问后台网络数据库,如信息的查询、数据的提交更新等,因而数据库的访问容易造成系统 的瓶颈。如“在线考试系统”中,学生的数量非常大,身份验证、随机选题、试卷提交、考试预约、成绩查询、考 务管理、公告查看以及课程管理等模块均涉及对数据库的操作。本文所述“在线考试系统”采用JSP技术实 现,使用了存储过程使执行速度大大提高。下面介绍该系统的实现技术。 1 主要技术简介 1.1 JSP JSP Java Server Pages)是由Sun Microsysetms公司于1998年4月在Java语言的基础上开发出来的一 种简单快速的动态Web页面制作技术。JSP使用XML标签和Scripdet,封装了生成页面内容的逻辑。它将 HTML或XML等各种格式的标记直接传回客户端。通过这种方式,JSP页面实现了页面逻辑与其设计和显 收稿日期:2005—12—08 作者简介:莫佳(1977一),男,讲师,硕士,主要研究方向为计算机应用、电子商务。 

维普资讯

第1期 莫佳:JavaBean在访问数据库中的应用 示的分离。JsP页面被编译成Servlets,这种编译一般是在用户第一次请求JsP页面时进行。当多用户并发 访问JsP页面时,系统通过多个独立线程来响应这些请求,这些线程会一直存在于Web服务器的内存中,直 到该页面被修改或服务器重新启动,这样以后调用该页面时将很快。JSP可以进一步调用JavaBeans组件或 EJB(Enterprise JavaBeans)组件,以便在服务器端作更复杂的处理 】。 JsP的设计目标主要有以下几点:(1)能够在任何Web或应用服务器上运行;(2)能将商务逻辑和表现 逻辑相分离;(3)采用标记加快开发和测试;(4)能最大限度的实现软件的重用。 1.2 JavaBearl JavaBean是基于Java开放的标准组件体系结构,类似于Microsotf的COM组件概念L‘】。JavaBean之间 的组合能快速生成新的应用程序,可以最大限度的扩充应用程序功能。一个JavaBean就是满足JavaBean规 范的Java类,其主要特征包括属性、方法和事件处理器。一般一个标准的JavaBean要求必须有一个不带参 数的构造器;有一组 ̄txxx()公共方法,使得其它的组件或程序可以得到Bean内部属性的值;同时也有一 组相应的 ̄etXXX()公共方法来改变Bean内部属性的值。 在JsP页面里可以调用一个或多个JavaBean。使用<j印:useBean>标签生成一个特定JavaBean的实 例。如果这个类的实例已经存在,则直接使用,否则,创建一个新的实例。要读取JavaBean的属性,可以使 用<jsp:getProperty>标签,而要设置某个JavaBean的属性值,则可以使用<jsp:setProperty>标签。 1.3 JDBC JDBC(Java Database Connectivity)是用于执行sQL语句 的Java API[5】。JDBC扩展了Java的功能,使Java可以操作数 据库,JDBc具有建立应用程序与数据库之间的连接、向数据 库发送SQL语句以及处理从数据库中返回给应用程序的结果 集等功能。一般使用JDBC三层模型完成数据库的访问,l所示。 如图 图1 JDBC三层模型 在三层模型中,应用程序对数据库的操作指令首先发到中间层,然后由它将SQL语句发送给数据库。 数据库对SQL语句进行处理并将结果送回到中间层,中间层再将结果送回给应用程序。一般而言,中间层 通常用C/C++编写以提高执行速度。与ODBC不同的是,JDBC一般不需要在服务器上创建数据源。若数 据库没有相应的JDBC驱动程序,则使用与JDK绑定在一起的JDBC—ODBC桥接驱动程序。 2 “在线考试系统”工作模式 JSP规范给出了3种标准的使用jsv的方式,在实际的使用中需要作某种变通处理。本系统的体系结构 是标准的三层体系结构,即浏览器、 b服务器和数据库服务器,“在线考试系统”位于wleb服务器内,对后 台数据库的访问以及重要的计算都由JSP页面分发给相应的JavaBean,Bean将处理后的结果返回给调用它 的JSP页面,然后JSP页面负责将最终的结果送回到客户端的浏览器上,如图2所示。 P,equest P.espome 图2系统体系结构图 

维普资讯

西南科技大学学报 用户登录的功能由一个Servlet实现,该Servlet主要负责分发用户的请求,如身份验证、根据用户的身份 角色定位到不同的JSP页面以及进一步将用户的请求传送到相应的JSP页面等。JavaBean执行来自JSP页 面的请求,若该请求需要访问后台数据库,它还负责调用位于数据库服务器中的存储过程SP(Stored Plroce. dure)。存储过程一旦建立,它会减少客户端和服务器端的网络通信量,并且用户只能在存储过程定义的范 围内操作数据,因此,一般存储过程较直接将SOL语句“硬绑定”在应用程序中这种方式的效率以及安全性 都要好。 3 JavaBean对数据库操作实现 3.1数据库连接 为了方便数据库配置,本系统将数据库的连接参数写入%SystemRoot%\system32\dbconn.properties配 置文件中,若以后系统运行的环境发生变化,可以简单的修改这个配置文件即可。该文件的内容如下: URL=jdbc:microsoft:sqlserver://localhost:1433:DatabaseName=onlineexam Driver=com.microsoft.jdbc.sqlserver.SQLServerDriver UserName=online Password=xxx,aD【xx 其中,UBL表示数据库的连接字符串,不同的数据库采用的连接子协议不一样,如mysql数据库连接字 符串形如jdbc:mysql//host:port;Driver表示所选用的驱动程序;UserName和Password分别表示连接数据库 所使用的用户名和密码。在负责访问数据库的DBBean中读取该配置文件的参数,相关的代码如下所示: public class DBBean{ 田{ } InputStream in getClass().getBesour- / ceAsStream(ndhconn.properties ); 以下是获得数据库连接方法 Properties P new Properties(); ,I/ P.1oad(in); public Connection getConnnection(){ url=P.getProperty( R【,); try{ driver P.getProperty( Driver ̄); can=DfiverManager.getConnection(url, usemame P.getProperty( UserName”); u¥ername,psw); psw P.getP_roperty("Password ); }catch(SQLException e){l Clsas.forName(driver).newInstance return can; ();//加载数据库驱动程序 } }catch(Exception e){ } 3.2数据检索与更新 在数据检索与更新方面,系统使用存储过程,下面以用户身份验证和教师向题库中添加新的试题类型这 两个存储过程为例,说明上述DBBean对存储过程的调用。 身份验证存储过程sp_.1ogln的主要代码如下: 蹦 / select userID 用户登录时身份验证存储过程。 from user1 / where userID=@userlD and psw=@password create procedure sp_login( go @userID varchar(30),//用户ID号 “在线考试系统”对试题分类管理,如选择题、填 @password varchar(30)//用户密码 空题、判断题、简答题、论述题以及综合题等,存储过 

维普资讯

第l期 莫佳:JavaBean在访问数据库中的应用 程sp_AddNewTestType完成新题型的添加,主要代码 在负责访问数据库的DBBean中定义如下的方 如下: 法来调用存储过程: create proceduI1e sp_AddNewTestType( public ResuhSet executeQuery(String sq1)throws @testTypeName varchar(20)) SQLException{ 嬲 cstmt=cnn.preparcCall(sq1); / cstmt.setString(1,userID); ・・先检测在添加之前题型是否已经存在, cstmt.setString(2,psw); 若存在则不需作添加动作而直接返回。 1"8=cstmt.executeQuery(); ・/ if exists( select testTypeID from testTypeTb where testTypeName=@testTypeName public void executeUpdate(String sq1)throws ) SQLException{ begin cstmt=cnn.preparcCall(sq1); return cstmt.setString(1,testTypeName); end cstmt.executeUpdate(); insert into testTypeTb values(@testTypeName) go l 在上述方法的实现中,最关键的是CallableStatement对象的使用,JDBC使用该对象完成存储过程的调 用,其语法是{call procedureName(?,? …)}。其中?表示IN、OUT或者INOUT参数的占位符,若是 参 数则需要 ̄txxx()进行设置。例如调用存储过程sp_login,只需将字符串“{call sp_login(?,?)}”传人到方 法executeQuery(String sq1)即可。 4 结束语 JavaBean是一种非常优秀的可复用组件模型,它提供一组属性、方法以及事件处理器。“在线考试系 统”中利用JavaBean实现了数据库访问的封装,同时为了方便系统的维护以及效率的提升,使用了数据库连 接配置文件以及存储过程。如果以后系统运行环境如数据库发生了变化,就可以修改这个配置文件和相应 的存储过程而不用更改Web服务器上的逻辑,因而也实现了业务层与数据层的分离,大大减小了这两层间 的耦洽。 参考文献 l齐治昌,谭庆平,宁洪.软件工程[M].北京:高等教育出版社,2004 2孙以义,杜鹃.用JSP构建动态网站[F,B/OL].http://www.qqread.com/Jvava/d412136600.html,2005—12—05 3 Sun Microsystenm.JavaServer Pages[tm]Technology—White Paper[EB/OL].http://java.81111.com/products/jsp/whitepaper. hunl 4黄理,李积善,等.用JSP轻松开发Web网站[M].北京:北京希望电子出版社,2001 5刘丽珏,张龙祥.JDBc与Java数据库程序设计[M].北京:人民邮电出版社,2001 


本文标签: 数据库 系统 访问 页面 过程