论文部分内容阅读
摘要:本文介绍了一个基于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格式阅读原文。”
关键词: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程序片段%>和
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是通过
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格式阅读原文。”