基于JSP技术的高校图书馆系统的设计与实现

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:victinfy
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:本文介绍了一个基于JSP动态网页技术开发的高校图书馆系统的方法。该系统采用JSP+JAVABEAN的设计模式,以MS SQLSEVER 2000做数据库平台,通过 JDBC技术访问数据库,具有书目检索、信息发布、我的图书馆等功能。
  关键词:JSP;JDBC;JavaBean
  中图分类号:TP311 文献标识码:A文章编号:1009-3044(2007)16-30913-03
  Design and Implementation of Library System for University Based on Jsp
  ZHENG Bu-qin
  (Suqian College,Suqian 223800,China)
  Abstract:This paper introduces a method of the discovered online library system by the websites based on JSP technology.The system adopted JSP+JAVABEAN tactic pattern and use the MS SQL SEVER 2000 as the database platform.By using the JDBC teachnology,this database has many functions such as book indexing,issuing news and my library.
  Key words:JSP;JDBC;JavaBean
  
  1 引言
  
  随着网络技术不断发展和深入,师生的学习和生活越来越需要网络。图书管理系统作为目前高校管理中必不可少的系统,不但要脱离手工的管理,而且也要面向网络发展。特别是在当前计算机和网络高速发展的时代,人们开始充分利用现有的资源,来进行图书管理。利用网络,使整个校园网甚至Internet上的用户都可以访问本图书馆系统。因而就可以在多地域、任意时间段以不同身份来访问图书馆系统中的数据,大大加强了系统数据共享的能力。
  
  2 系统的总体设计
  
  2.1 系统的功能设计
  高校图书管理系统主要有三类使用人员,即一般用户、读者(本校师生)、管理员。一般用户可以在网上进行图书查询、图书分类浏览、图书详细资料查看和信息发布查看等操作。读者在登录成功后对于自己感兴趣但不在馆的图书可以直接在线提出预约申请,对于还需使用的图书进行续借一周期。读者还能在线查看、修改个人资料及预约申请表,若不慎丢失读者证还可以在线挂失。
  管理员则可以在线管理所有这些图书信息、用户信息,还可以在线进行图书的借还操作,信息的发布管理操作。另外,用户也可以不通过网络直接借阅图书。
  具体功能如图1所示。
  图1 高校图书馆系统功能表
  2.2 数据库设计
  数据库在一个系统中占有非常重要的地位,数据库结构设计的好坏将直接影响到系统的效率以及实现的效果。合理的数据库结构设计可以提高数据库存储效率,保证数据的完整性和一致性。
  设计数据库系统时,首先应该充分了解系统的各个方面的需求,包括现有的以及将来可能添加的需求。根据高校图书管理系统的功能,编者设计了相关的数据库,该数据库采用MS SQLSEVER 2000建立,数据库名称为library,主要包括图书表(tushu)、读者表(duzhe)、 管理员表(guanli)、预约表(yuyue)、借阅表(jieyue)、出版社信息表(cbs)和类别信息表(leib)等。
  图书表(tushu) 包含条码号(tmh)、索书号(ssh)、书名(sm)、图书类别编号(slb)、作者(zz)、出版社(cbs)、出版日期(cbrq)、价格(jg)、图书简介(tsjj)、是否在馆(sfzg)等字段
  读者表(duzhe) 包含读者编号(dzbh)、读者名(dzm)、读者密码(dzmm)和读者类型(dzlx)等字段
  管理员表(guanli) 包含管理员编号(glybh)、管理员名(glym)和管理员密码(glymm)等字段
  预约表(yuyue) 包含预约编号(yybh)、读者编号(dzbh)、书名(sm)、预约借阅日期(yyrq)和图书状态(tszt)等字段
  借阅表(jieyue) 包含借阅编号(jybh)、预约编号(yybh)、读者编号(dzbh)、图书索书号(ssh)、借阅日期(jyrq)等字段
  出版社信息表(cbs) 包含出版社编号(cbbh)和出版社名称(cbmc)字段
  类别信息表(leib) 包含类别编号(slb)和类别名称(lbmc)字段
  2.3 开发环境选择
  2.3.1 环境要求
  本系统采用Tomcat5.0作为服务器;使用JDK:的J2sdk1.4版本;操作系统为WINDOWS 2000 SEVER;数据库平台是SQL SEVER 2000;数据库连接采用JDBC,驱动为Microsoft SQL Sever 2000 Driver for JDBC,JAVABEAN负责封装数据库JDBC的连接。
  2.3.2 JSP
  JSP是由SUN Microsystem公司倡导,许多公司参与一起建立的动态网页技术标准[1]。JSP是基于Java Servlet以及整个Java体系的Web开发技术,利用这一技术可以建立先进、安全、快速和跨平台的动态网站。在网页HTML文件中加上<%Java程序片段%>和标记,就构成了JSP网页。Web服务器在遇到访问JSP网页的请求时,首先执行其中的java程序片段,然后将执行结果以传统的HTML格式返回给客户。程序片段可以操作数据库、重新定向网页以及发送 email 等等。所有程序操作都在服务器端执行,网络上传送给客户端的仅是回应请求的结果,对客户浏览器的要求很低。在用户连接JSP网站时,用户请求网页,JSP页面独自响应请求,将用户对网页的请求转化为对数据的请求,通过Java Bean处理请求并将返回的数据封装成HTML页面返回给用户。
  
  3 关键技术和系统实现
  
  3.1 数据库连接
  本系统采用JDBC连接SQL SEVER数据库,同时在数据库操作上用BEAN进行了封装,方便程序开发时与数据库的交互,接下来详细看一下这两方面。
  3.1.1 JDBC
  JDBC是一种可用于执行SQL语句的JAVA API。它由一些JAVA类和接口组成。JDBC给数据库应用开发人员、数据库前台工具开发人员提供了一种标准的应用程序设计接口,使开发人员可以用纯JAVA语言编写完整的数据库应用程序。[2]
  JDBC具体可以实现以下三个功能:
  与数据库建立连接
  Connection conn=DriverManager.getConnection(url,user,password);
  Statement stmt=conn.createStatement();
  DriverManager(驱动程序管理器)类是JDBC的管理层,作用与用户和驱动程序之间。DriverManager.getConnection()方法将生成与数据库连接的对象Connection。参数url将JDBC驱动程序和数据库URL、数据库固有识别字以”JDBC驱动:@数据库URL:数据库SID”形式进行存储,参数user为用户名,参数password为用户密码。
  conn.createStatement()方法是使用Connection对象生成Statement对象,操作数据库。
  向数据库发送SOL语句
  ResultSet rs=stmt.executeQuery(“SELECT * FROMLIBRARY”)
  Statement对象的executeQuery()方法以参数方式接收到SQL Query以后,返回具有查询结果值的ResultSet对象,并把结果值交给名为rs的ResultSet。ResultSet对象像数据库的表一样也是由行和列组成,在ResultSet的行上提供指针。
  获取并处理结果集。
  while (rs.next()){
  String name=re.getString(“name”);
  System.out.println(“Name:”+name);
  ResultSet对象的next()方法可以移动指针,getXX()方法可以获取当前指针某列的值,getString()获得字符型数据。
  3.1.2 JAVABEAN
  JAVABEAN是一种JAVA类,通过封装属性和方法成为具有独立功能、可重复使用的并且可以与其他控件通信的组件对象[3]。JAVABEAN可分为可见BEAN(JAVA开发工具中的按钮等)和不可见BEAN(JSP中的BEAN只完成某些功能)。但不管何种BEAN都应符合以下特点:是一个public类,包含一个无参构造函数,每个属性XXX都有getXX()方法和setXX()方法。
  在JSP中,JAVABEAN既保证了JSP的灵活性,又能够实现JAVA类的重用,因而JAVABEAN是一项非常有用的功能。JSP是通过三个动作和JAVABEAN交互的。其中动作用来指定是哪一个BEAN对象,用来设置BEAN的属性,用来获得BEAN属性值。
  3.1.3 JAVABEAN封装数据库连接
  在本系统中,读者登陆、查询、续借、预约等页面都要访问到数据库。为提高工作效率,实现代码复用,编者将所有对数据库的访问都封装到JAVABEAN中,以后每次访问数据库只需调用JAVABEAN就行了。
  具体代码如下:
  //本系统的数据库名为library,用户名为bu,密码为81。
  package libean;
  import java.sql.*;
  public class connl{
  Connection conn=null;
  Statemment stmt=null;
  Resultset rs=null;
  Public connl(){
  Try
  {//加载JDBC驱动程序
  Class.forname(“com.microsoft.jdbc.sqlserver.SQLServerDriver”);
  }catch(java.lang.ClassNotFoundException e)
  { System.err.println(e.getMessage());
  }}
  //执行查询操作,返回结果值为ResultSet对象
  Public ResultSet executeQuery(String sql){
  Try{
  Connection conn=DriverManager.getConnection(“jdbc:microsoft:sqlserver://localhost;DatabaseName=library;user=”sa”;password=”81”);
  Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL
  _INSENSITIVE,ResultSetCONCUR_READ_ONLY);
  Resultsetrs=stmt.excuteQuery(sql);
  }catch(SQLException ex)
  {System.err.println(ex.getMessage());}
  return rs;
  //执行更新操作,返回值为int
  public int executeUpdate(String sql){
  //省略具体代码,其代码和查询类似
  }
  //关闭数据库连接,没有返回值
  public void close()
  {//省略异常捕获
   rs.close();//ResultSet对象关闭
  stmt.close();//Statement对象关闭
  conn.close();//Connection 对象关闭 }
  }
  3.2 网上续借功能的实现
  读者登录后,首先查看当前已经借阅图书信息,选中该书前面按钮。在借阅表中,若该书的应还日期减去当前日期的值在0到7之间,并且该读者所借其它书刊应还日期减去当前日期的值大于0,则页面上的续借该书按钮呈现有效状态。读者如果想续借某本图书,点击续借该书按钮即续借成功。效果如图2所示。
  图2 图书续借页面
  点击续借该书按钮是所做工作为更新借阅表中该书的应还日期的值。当读者的类型为1即为学生,则续借时间为30天,反之是教工,续借时间为60天.主要代码如下:
  …
  //使用数据库连接的BEAN :connl
  
  …
  <%
  string sh=request.getparameter(“ssh”);
  string dub=request.getparameter(“dzbh”);
  string sql=”select dzlx from duzhe where dzbh=dub”;
  ResultSet rs=connl.excuteQuery(sql);
  int lei=rs.getint(“dzlx”);
  int num=0;
  if (lei==1) num=num+30;
  else num=num+60;
  sql=”update jieyue set jyrq=DateAdd(Day,num,jyrq) where ssh=sh”;
  connl.excuteUpdate(sql);
  connl.close();
  %>
  系统的其他模块实现方法和续借功能类似。在此不再叙述。
  
  4 结束语
  
  本文介绍了一个基于JSP技术的高校图书管理系统的设计与实现。该系统在功能上相当完整,设计了高校图书管理的所有功能,系统的关键部分主要集中在读者预约、续借图书和管理员对借阅图书的管理。自从JSP诞生后,JAVABEAN在服务器端应用方面表现出来越来越强的生命力。在JSP程序中常用来封装事务逻辑、数据库操作等,可以很好地实现业务逻辑和前台程序(如JSP文件)的分离、逻辑封装、程序易于维护等。在本文中,编者仅用JAVABEAN封装JDBC数据库连接,实现代码复用。若读者有兴趣,可以将系统中的业务逻辑全部用JAVABEAN封装改写。从而使得系统具有更好的健壮性和灵活性。
  
  参考文献:
  [1]刘中兵,李伯华,邹晨.JSP数据库项目案例导航[M].北京:清华大学出版社,2006:1.
  [2]柳永坡,刘雪梅,赵长害.JSP应用开发技术[M].北京:人民邮电出版社,2004.2005:199.
  [3]王强,贾素玲,许珂,张成.JSP开发技术[M].北京:高等教育出版社,2005:81.
  注:“本文中所涉及到的图表、公式注解等形式请以PDF格式阅读原文。”
其他文献
摘要:目前,数据库在各行各业中广泛应用。在众多商业数据库软件中,SQL SERVER 和ORACLE被较多的使用,因此这两个数据库软件的价格也较昂贵。本文主要介绍MySQL数据库在单线程或多线程程序环境下使用C API访问MySQL数据库方法,并给出了相应代码和分析。该数据库属于开源数据库,具有较高的成熟度,并且对于社区版本可以免费使用,因此对于需要使用C API访问数据库的项目开发,可降低开发成
期刊
摘要:分析当前主流电子镇流器控制芯片的优缺点,提出了一种适用于功率在20W以下节能灯控制芯片的设计方案。采用常规的CMOS铝栅工艺。整个控制芯片由主芯片和高压管驱动两块芯片组成,两管间通过自举电容耦合。自举电容起的作用:(1)隔离高压 (2)传输高压功率管的控制信号。此设计方案的难点是设计出符合上述设计要求的高压管驱动芯片。此款芯片采用6μm CMOS铝栅工艺模型,经仿真验证,现已通过MPW流片成
期刊
摘要:以应用大洋X-CG字幕机制作辽宁气象影视中心天气预报为例,阐述了大洋字幕机在天气预报生成系统中所体现出的特点和优势。  关键词:字幕机;气象影视制作;报文解码;模板文件  中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)17-31450-02  The Application of Ocean X-CG Sub-title Machine on TV the Ap
期刊
摘要:介绍SQL的概念及特点,通过实例重点介绍Visual FoxPro 6.0中SQL命令的分类、用法及使用技巧。  关键词:SQL命令;Visual FoxPro 6.0;使用技巧  中图分类号:TP311.13 文献标识码:A文章编号:1009-3044(2007)16-30906-02  Utilization of SQL Order in Visual FoxPro 6.0 Progr
期刊
摘要:从PDA的实际特点提出文件系统的特质(VFS),对于其文件系统的裁剪进行了分析,提出了一种的裁剪方法。  关键词:嵌入式Linux;操作系统;剪裁;PDA  中图分类号:TP316文献标识码:A 文章编号:1009-3044(2007)17-31420-02  Research of Tailoring Embedded Linux File System on PDA   JIANG-Ch
期刊
摘要:远程教育通过网络作为教学媒体,其优势不仅在于它是很好的内容载体,可以随时随地访问,还在于它提供了很多交流渠道,为师生之间、学生之间的充分讨论提供了可能,这对于提高教学质量、促进学生智力的开发是十分重要的。总结了现代远程教学系统中常用的交互方式,从功能层面描述了交互性的用途,从技术层面分类讨论了远程教学中交互性实现的几种途径。并且通过实现远程网络教育来进行具体说明。  关键词: Web;远程教
期刊
摘要:虚拟仿真实验的应用可以提高学生对实验的熟悉程度,弥补实际实验室硬件条件的局限,提高教学效果,促进教学改革。文章以物理天平的模拟调节实验为例,介绍了面向对象编程的特点,以及如何利用FLASH进行面向对象的虚拟仿真实验开发。  关键词:FLASH;面向对象编程;虚拟仿真实验;物理天平  中图分类号:TP391文献标识码:A文章编号:1009-3044(2007)17-31438-03  Deve
期刊
摘要:随着Internet技术的广泛应用及信息技术的迅速发展,MIS系统已经从传统的C/S结构向多层结构转变,本文以微软的MTS为例,对基于MTS的C/S结构的技术做了详细的阐述和探讨。  关键词:MIS;C/S结构;MTS  中图分类号:TP393文献标识码:A文章编号:1009-3044(2007)15-30900-02  Based on the Three-tier Structure o
期刊
摘要:以一个图书管理系统的模块为例,系统分析了“基于. NET反射机制的数据处理”相对于传统数据处理方法的优点;介绍了.NET反射机制的基本原理,通过对实例的分析,说明反射机制是可行的,有助于简化和缩短代码,提高开发效率。  关键词:反射;.NET;类;属性  中图分类号:TP319文献标识码:A文章编号:1009-3044(2007)16-30916-02  Use Reflection Mec
期刊
摘要:从设区市提升科技成果、专利转化为生产力需求出发,探讨了建立Web的设区市自主创新体系信息平台的关键技术,并对该信息平台的系统功能做了概述。  关键词:成果;专利;自主创新;信息平台  中图分类号:TP311文献标识码:A 文章编号:1009-3044(2007)16-30894-01  Web-based System for Independent Innovation Civic Pla
期刊