1、 基于B/S模式的图书管理系统的开发与实现摘 要图书管理系统是典型的信息管理系统,其开发主要包括后台数据库的建立维护和前端应用程序的开发。文章分析了图书管理的基本要求,完成了需求分析、功能模块划分、数据库模式的设计,开发出了基于B/S模式的图书管理系统。系统建立在JSP技术上,以 SQL server2005作为数据库,实现了对图书和学生信息的添加、删除、修改等功能,同时结合图书与学生的实际联系,完成了学生与图书的信息有序化、准确化。关键词: B/S模式;JSP; SQL server2005The Programing and Realization of Library Managemen
2、t System Based on B/S ModeABSTRACTLibrary management system is a typical management information system (MIS), including the development of the main background of the establishment and maintenance of database and application development front-end aspects. In this paper,it analysis the basic requireme
3、nts of library management to accomplish the requirements analysis, dipartition of fuction module and design of database mode,and developed the library management system based on B/S model.The system is based on the technique of JSP and uses MySQL as database to implement these features such as addit
4、ion, deletion and modification information of books and students. Meanwhile it combines with the entity relationship of books and students to accomplish ordering and correction of students and books information.Key words: (B/S)pattern;JSP; SQL server2005IV目录第 1 章 系统需求分析11.1系统的开发背景和市场需求11.2可行性分析11.2.
5、1环境可行性分析11.2.2技术上的可行性11.2.3 社会可行性11.3运行要求21.4功能需求21.4.1登录模块21.4.2借阅图书、归还图书、续借图书21.4.3图书查询21.4.4新书入库和添加读者21.4.5读者查询31.5开发平台3第2章 开发环境42.1开发平台42.2 My SQL数据库简介52.3 SQL 介绍52.3.1 SQL基础52.3.2 SQL语句6第3章 总体设计83.1 系统设计目标83.2系统结构图83.3模块设计93.4 数据库设计103.4.1数据库设计原则103.4.2数据库概念设计103.4.3数据库逻辑设计113.4.4物理结构设计11第 4 章
6、详细设计144.1登录模块设计144.1.1登录界面的描述144.1.2流程逻辑144.1.3登录界面(login.jsp)144.2图书管理员界面设计154.2.1图书管理员界面的描述164.2.2流程逻辑164.2.3图书管理员界面(zjm.jsp)164.3 学生管理界面设计204.3.1学生界面的描述204.3.2流程逻辑204.3.3学生管理界面(zjm1.jsp)21结 论22致 谢23参 考 文 献.24西北师大(论文)第 1 章 系统需求分析1.1系统的开发背景和市场需求随着计算机应用在全球范围内日益普及,当今社会正快速向信息化社会前进,信息自动化的作用也越来越大。从而使我们从
7、繁杂的事务中解放出来,提高了我们的工作效率。鉴于目前大多数高校都采用计算机管理图书信息以及实现学生对图书信息的查询和借阅。利用计算机的高效及快速有效,能及时的处理很多学生的借阅问题,并能很快的了解学生的借阅情况,能更好的适应当前会员的借阅要求。计算机信息化管理有着储存量大,速度快等许多优点,提供给我们的处理信息及时快捷,因此我们利用计算机提供给我们的信息对会员们的借阅过程形成一整套动态的管理。本图书管理系统是针对学校的图书馆日常操作业务而开发的管理软件。并且根据学生与图书之间的实际情况,实现图书、读者之间的准确化,有序化,信息化管理。本系统主要由这几个模块组成:系统管理员模块和学生界面模块。图
8、书管理系统通过录入图书的详细资料,建立读者档案、系统用户资料,找出图书与读者之间的对应关系,实现日常的借阅操作。基于得到的这些基础数据,系统自行生成相应的统计数据以供管理员查询;另外,管理员还可以对图书信息、学生信息进行添加删除修改;系统还可为读者借阅时提供图书是否在馆,以及自己借书、还书等情况的查询功能,图书管理系统力求给图书管理员提供操作简单、方便快捷的途径去管理这些庞大,繁琐的信息和图书。1.2可行性分析1.2.1环境可行性分析本系统是基于B/S模式的管理系统,采用的是JSP技术,数据库是建立在SQL server2005上的。对操作系统的要求是Window XP系统以上版本,还要有ec
9、lipse开发软件和SQL server2005, 这些软件都可以从网上或其他途径达到要求。1.2.2技术上的可行性 本系统是建立在JSP开发平台上的,可以跨平台使用。1.2.3 社会可行性本系统作为一个小型的图书馆信息管理系统,所耗费的资源非常的小,该系统只需要管理员进行简单的点击文件确定的的工作,应用起来非常方便和快捷,在节省了人力资源的同时由于主要是由电脑完成主要的工作,所以极大地解决了时间上的浪费。1.3运行要求系统的运行对运行环境有一定的要求:(1)硬件环境处理器:Intel Pentium 4 3.06G或更高内存:256MB或更高硬盘空间:40GB或更高显卡:SVGA显示适配器(
10、2)软件环境操作系统:Windows 2000/XP/windows7数据库:SQL server20051.4功能需求本图书管理系统主要分为两大部分,也就是图书管理员和学生两个界面。图书管理员的功能主要体现为对图书信息和学生信息的添加、修改、删除,根据学生借阅的需求,实现图书、读者之间的有序化,信息化管理;学生则可在线对图书信息进行查询,可续借图书。1.4.1登录模块本系统属某个小型校园的图书管理系统,只有属于该地方内部人员才能登录本系统。因此不提供对外注册功能。登录界面根据用户的类型不同分别进入图书管理员或学生界面。只要是该地方内部的成员,凭自己的编号及初始密码。即可进入普通用户界面。管理
11、员界面只有特定的管理人员根据所分配的固定用户名才可登录。1.4.2借阅图书、归还图书、续借图书借阅图书和归还图书这个功能只有图书管理员可操作,通常是学生拿着自己需要的图书交给图书管理员,图书管理员输入该图书编号、学生的学号管理学生的借阅情况,但续借图书这个功能图书管理员和学生均可进行操作。1.4.3图书查询图书查询功能图书管理员和学生都可用,输入图书的编号即可查询图书的相关信息,如图书的出版社,库存量等。不同的是学生在查询后只可查看图书的信息,但是图书管理员还可对此书进行信息的修改、删除。1.4.4新书入库和添加读者该功能只是针对图书管理员而言,这是图书管理员添加图书信息的方式。1.4.5读者
12、查询该功能只对图书管理员而言,通过该功能可对学生信息进行查看并可对此学生的信息进行修改、删除。1.5开发平台通过以上系统功能分析,可行性分析等,决定开发该系统使用JSP语言作为系统开发,所以在本系统选择如下开发平台:1) 系统开发环境为 Eclipse+tomcat。2) 前台开发语言:jsp3) 后台数据库系统采用SQL server200524 西北师大(论文) 第2章 开发环境2.1开发平台JSP(JavaServer Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.ht
13、m,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。 用JSP开发的Web应用是跨平台的,即能在Linux下运行,也能在其他操作系统上运行。JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。 Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HT
14、ML代码一起返回给客户。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。 JSP与Java Servlet一样,是在服务器端执行的,通常返回该客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。 JSP的1.0规范的最后版本是1999年9月推出的,12月又推出了1.1规范。目前较新的是JSP1.2规范,JSP2.0规范的征求意见稿也已出台。JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。Java Servlet 是JSP的技术基础,而且大型
15、的Web应用程序的开发需要Java Servlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。 1 JSP技术的强势 (1)一次编写,到处运行。在这一点上Java比PHP更出色,除了系统之外,代码不用做任何更改。(2)系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比ASP/PHP的局限性是现而易见的。 (3)强大的可伸缩性。从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,
16、消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。 (4)多样化和功能强大的开发工具支持。这一点与ASP很像,Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。 2 JSP技术的弱势 (1) 与ASP一样,Java的一些优势正是它致命的问题所在。正是由于为了跨平台的功能,为了极度的伸缩能力,所以极大的增加了产品的复杂性。 (2) Java的运行速度是用class常驻内存来完成的,所以它在一些情况下所使用的内存比起用户数量来说确实是“最低性能价格比”了。从另一方面,它还需要硬盘空间来储存一系列的.java文件和.clas
17、s文件,以及对应的版本文件。2.2 SQL server2005数据库简介SQL Server 是一个全面的、集成的、端到端的数据解决方案,它为企业中的用户提供了一个安全、可靠和高效的平台用于企业数据管理和商业智能应用。SQL Server 2005 为IT专家和信息工作者带来了强大的、熟悉的工具,同时减少了在从移动设备到企业数据系统的多平台上创建、部署、管理及使用企业数据和分析应用程序的复杂度。 通过全面的功能集、和现有系统的集成性、以及对日常任务的自动化管理能力,SQL Server 2005 为不同规模的企业提供了一个完整的数据解决方案2.3 SQL 介绍2.3.1 SQL基础SQL(S
18、tructured Query Language,结构查询语言)是一个功能强大的数据库语言。SQL通常使用于数据库的通讯。ANSI(美国国家标准学会)声称,SQL是关系数据库管理系统的标准语言。SQL语句通常用于完成一些数据库的操作任务,比如在数据库中更新数据,或者从数据库中检索数据。使用SQL的常见关系数据库管理系统有:Oracle、 Sybase、 Microsoft SQL Server、 Access、 MY SQL等等。SQL语言有着非常突出的优点,主要是:u 非过程化语言u 统一的语言u 是所有关系数据库的公共语言非过程化语言:SQL是一个非过程化的语言,因为它一次处理一个记录,对
19、数据提供自动导航。SQL允许用户在高层的数据结构上工作,而不对单个记录进行操作,可操作记录集,所有SQL 语句接受集合作为输入,返回集合作为输出。SQL的集合特性允许一条SQL语句的结果作为另一条SQL语句的输入。SQL不要求用户指定对数据的存放方法, 这种特性使用户更易集中精力于要得到的结果;所有SQL语句使用查询优化器,它是RDBMS的一部分,由它决定对指定数据存取的最快速度的手段,查询优化器知道存在什么索引,在哪儿使用索引合适,而用户则从不需要知道表是否有索引、有什么类型的索引。统一的语言:SQL可用于所有用户的DB活动模型,包括系统管理员、数据库管理员、 应用程序员、决策支持系统人员及
20、许多其它类型的终端用户。SQL为许多任务提供了命令,其中包括:u 查询数据u 在表中插入、修改和删除记录u 建立、修改和删除数据对象u 控制对数据和数据对象的存取u 保证数据库一致性和完整性以前的数据库管理系统为上述各类操作提供单独的语言,而SQL 将全部任务统一在一种语言中。所有关系数据库的公共语言:由于所有主要的关系数据库管理系统都支持SQL语言,用户可将使用SQL的技能从一个RDBMS(关系数据库管理系统)转到另一个,所有用SQL编写的程序都是可以移植的。2.3.2 SQL语句SQL功能强大,是一种完备的数据处理语言,不仅用于数据库查询,而且用于数据库中的数据修改和更新,概括起来,它可以
21、分成以下几组:DML(Data Manipulation Language,数据操作语言):用于检索或者修改数据; DDL(Data Definition Language,数据定义语言): 用于定义数据的结构,比如 创建、修改或者删除数据库对象; DCL(Data Control Language,数据控制语言):用于定义数据库用户的权限。DML组可以细分为以下的几个语句:SELECT:用于检索数据;INSERT:用于增加数据到数据库;Insert标准语法: INSERT INTO table_name (col1, col2.) VALUES(value1, value2.)UPDATE:
22、用于从数据库中修改现存的数据;UPDATE table_nameSET columnname1 = value1, columname2 = value2.DELETE:用于从数据库中删除数据。Delete 语句标准语法:DELETE FROM tablename WHERE conditionDDL语句可以用于创建用户和重建数据库对象。下面是DDL命令:CREATE TABLE,ALTER TABLE,DROP TABLE,CREATE INDEX,DROP INDE第3章 总体设计3.1 系统设计目标 通过第一章的需求分析,图书管理系统主要实现的目标有:1. 人性化设计:使系统操作简单方便
23、、界面友好。2. 仅限操作:不提供外部人员的注册,且不同类型的用户有不同的操作权限。3. 图书管理员能对图书信息进行查看、添加、删除、修改操作。4. 图书管理员能对学生信息进行看、添加、删除、修改操作。5. 图书管理员能对图书的借阅信息进行操作。6. 学生用户能对图书信息进行查询及续借图书的操作。3.2系统结构图 根据图书管理系统的特点及对现大多数图书管理系统的分析,主要分为两个主要的模块,即图书管理员和学生两个模块,图书管理员模块的主要实现的功能是对图书信息和学生信息的查看、添加、删除、修改操作,并且根据学生与图书之间的实际情况,实现图书、读者之间的准确化,有序化,信息化管理;而学生这个模块
24、就可对图书信息进行查询和续借图书。而每个模块下分别设置了该模块的基本操作,基本能满足一般中小型图书借阅管理系统的需求。系统功能结构如图3.1所示:借阅图书登录界面图书管理员学生续借图书归还图书图书查询新书入库图书查询续借图书读者查询添加读者借阅情况图3.1 系统功能结构图系统流程图如图3.2所示:登录界面用户类型数据验证普通用户界面图书管理员界面借阅图书借阅情况查询图书续借图书退出验证信息失败普通用户图书管理员用户退出图3.2 系统流程图3.3模块设计1.用户登录 输入用户名和密码,并选择登录的用户类型。如果用户名和密码都是正确的,则进入相应的用户管理界面,否则显示必要的提示信息。流程图3.3
25、如下:登录成功用户登录NY图书管理员界面学生管理界面图3.3登录图2.图书管理员界面图书管理员可以对图书信息,学生信息进行管理,然后管理学生的借阅情况,并将借阅情况反馈给系统。3.学生管理界面学生管理界面让学生可以对自己已借图书进行查询并进行续借。3.4 数据库设计3.4.1数据库设计原则数据库设计是把现实世界的实体模型与需求转换成数据库的模型的过程,它是建立数据库应用系统的核心问题。数据库及其应用的性能都建立在良好的数据库设计的基础之上,数据库的数据是一切操作的基础,如果数据库设计不好,那么其它一切用于提高数据库性能的方法收效都是有限的。数据库设计的关键是如何使设计的数据库能合理地存储用户的
26、数据,方便用户进行数据处理。设计数据库必须遵循一定的规则,在关系型数据库中,这种规则就是范式,范式是符合某一种级别的关系模式的集合。一般我们设计数据库遵循第三范式。即:数据库表中不包含已在其他表中包含的非主关键字信息。采用范式减少了数据冗余,节约了存储空间,同时加快了增添、删除、修改的速度。该系统包括了管理员表(BookInfo)、图书信息表(BookInfo)、借阅情况表(BorrowInfo)、用户信息表(UserInfo)共4个表。3.4.2数据库概念设计实体联系方法(EntityRelationship Approach)是最常用的表示概念性数据模型的方法。这种方法使用ER图来描述现实
27、世界中的实体,而不涉及这些实体在系统中的实现方法,即使不熟悉计算机技术的用户也能理解它。为了使E-R图表示更加清晰,作者将E-R分成实体及其属性图和实体及其联系图。图书管理系统E-R图3.4如下所示:性别班级学生学号学生姓名学生管理账号密码权限图书管理员管理图书信息图书编号书名称书类别出版社库存量书作者借阅续借归还书归还状态图书说明mnnmnvmnmnm图3.4系统E_R图3.4.3数据库逻辑设计根据E-R图转换为关系模型的原则,将该系统总体E-R图转换成关系模型,并对关系模型进行优化,结果如下:管理员表(管理员账号,管理员密码,管理员权限)管理员姓名为此关系的主键学生表(学生学号,学生姓名,
28、性别 ,学生班级)学生学号为此关系的主键图书信息表(图书编号,书名,书类别,出版社,库存量,作者,图书说明)图书编号为此关系的主键借阅情况表(书编号,用户号,借书时间,借书期限,是否续借)书编号和用户号为此关系的主键3.4.4物理结构设计1.图书管理员表:该表存储了图书管理员的基本信息,选取管理员账号作为主键,详细信息如下:表3.1管理员表:library_admin字段数据类型备注Usernamevarchar(50)用户名passwordvarchar(50)密码Typevarchar(50)用户权限2. 图书信息表:该表存储了图书的基本信息,选取图书编号作为主键,详细信息如下:表3.2图
29、书信息表:library_books字段数据类型备注IDVarchar(50)书编号Typeidvarchar(20)书类型Titlevarchar(50)书名Authorvarchar(15)作者Companyvarchar(15)出版社Totalint库存量AbstractVarchar(50)图书说明3. 借阅情况表:该表存储了图书借阅情况的基本信息,选取图书编号和学生学号作为主键,详细信息如下:表3.3借还书表:library_outbooks字段数据类型备注BookIDVarchar(50)书编号UserIDint用户号BDatedatetime借书时间RDatedatetime还书
30、时间Notechar(2)是否续借4. 学生信息表:该表存储了学生的基本信息,选取学生学号作为主键,详细信息如下:表3.4学生信息表:library_user字段数据类型备注IDint学生学号NamVarchar(20)学生姓名SexChar(2)性别ClassVarchar(20)班级 西北师大(论文)第 4 章 详细设计4.1登录模块设计4.1.1登录界面的描述此功能模块主要完成登陆用户类型的选择以及用户名密码的验证。由登录界面进入到相关的用户界面的相关接口有CheckUser.jsp、CheckUser.java(自定义类)。主要的流程参看第三章系统结构图3.1和数据流图3.2。4.1.
31、2流程逻辑检查用户名和密码格式是否正确FT发出用户名或密码格式错误根据用户类型、用户名和密码查询相应的数据库验证是否成功FT验证失败错误弹出用户主界面登陆界面图4.1登录界面流程逻辑图4.1.3登录界面(login.jsp) 登录界面如下图4.2所示:图4.2登录界面输入用户名及密码并选择用户的类型,再点击登录按钮即可成功登录。如果用户名密码验证错误或者用户类型选择错误,则会弹出错误对话框,点击确定后即可返回登录界面进行重新登录1.登录到不同界面的重要代码String u=request.getParameter(username);String p=request.getParameter(
32、password);String s=request.getParameter(set);String sql=select * from Bookuser where username=+u+ And password=+p+; ResultSet rs=stmt.executeQuery(sql); if(rs.next() if(s.equals(gly)% %out.print(密码或用户名错误! 请重新输入!);% 4.2图书管理员界面设计4.2.1图书管理员界面的描述此功能模块主要完成图书管理员的相关功能,即对图书信息和学生信息的添加、修改、删除、查询,并结合实际情况管理图书的借阅
33、情况。主要的流程参看第三章系统结构图3.1和数据流图3.2。4.2.2流程逻辑图书管理员界面根据自己的需要选择相应有功能输入相应功能需要的信息检查数据存在或合法FT操作失败操作成功图4.3 图书书管理员界面流程逻辑图4.2.3图书管理员界面(Admin_welcom.jsp)当输入用户名密码选择正确的用户类型后,点击登录待验证用户名密码正确后即可进入图4.4管理员界面:图4.4管理员界面在图书管理员界面里面,图书管理员可以进行借阅图书,归还图书,续借图书,图书查询、新书入库、借阅情况查询、添加读者。图4.5集约图书界面Class.forName(com.microsoft.sqlserver.
34、jdbc.SQLServerDriver); Connectionconn=DriverManager.getConnection (jdbc:sqlserver:/localhost;DatabaseName=myBook;user=sa;password=201314); Statement stmt=conn.createStatement(); String sql=INSERT into BorrowInfo(UserID,BookId) VALUES(+U+,+B+);stmt.executeUpdate(sql); out.print(OK); 图书查询功能界面如图4.6;图4.
35、6图书查询界面部分重要代码如下:String sql=select * from BookInfo where Title=+u+; ResultSet rs=stmt.executeQuery(sql); while(rs.next() % 输入图书编号后则会显示图书的信息如图4.7:图4.7图书信息显示界面查询图书后还可以对图书信息进行修改、删除。点击新书入库功能如图4.8:图4.8新书入库界面添加读者信息功能如下图4.9:图4.9添加读者信息界面添加读者成功的信息的界面代码如下:Stringsql=INSERTINTOUserInfo(ID,Nam,Sex,Class) VALUES(+
36、I+,+N+,+K+,+S+);4.3 学生管理界面设计4.3.1学生界面的描述此功能模块实现学生可对图书信息进行查询并可以续借图书。主要的流程参看第三章系统结构图3.1和数据流图3.2。4.3.2流程逻辑学生管理界面根据自己的需要选择相应有功能输入相应功能需要的信息检查数据存在或合法FT操作失败操作成功图4.10学生管理界面流程逻辑图4.3.3学生管理界面(student_welcom.jsp)学生用户只有在线查询图书信息及图书续借的权限,图书续借即是学生在线登录到自己所在的界面,单击图书续借后输入自己已借图书的图书编号和自己的学号点击续借即可。如下图4.10:图4.11续借图书界面部分重要
37、代码如下所示:String sql=update BorrowInfo set Rdate=Rdate+5,Note=是 where UserID=+U+ and BookID=+B+;结 论在设计过程中,借助JSP这个平台,通过 SQL server2005数据库编程技术与操作让整个管理系统更适应于应用。同时在设计的时候也让我们理解了以前不懂的或不完全理解的知识,也把学到的东西得到了实践,进一步熟习界面的制作情况,以及相关事件的编程,这样就更弥补了我对JSP编程不够熟习的不足之处。程序写好后,还有很多问题,特别是数据库方面很容易出错,例如SQL语句很容易少写一个冒号或者分号,必须细心才行。这
38、次课程设计我们做的程序也让我学到了很多东西。对JSP的界面设计有了更具体的认识,让我们复习了以前学过的知识。也让我们有个更深刻的认识,同时也让我们都更加明白和清晰了。看着亲自动手写的软件能够运行,心中有说不出的愉悦。但也让我意识到自己知道的还很少,自己要做的还不止书本上的,更多的要我们自己在生活中不断体会不断感悟,了解自己真正所拥有的资本才能更好的适应于这个高速发展的世界。致 谢在这半年来的毕业设计中,真诚地感谢在整个毕业设计期间帮助过我的杨老师和同学们,在设计和写论文的过程中,得到了杨老师的细心指导,无论是论文总体结构还是具体完成,都给予了大量的帮助,从而使本人的理论和实践水平得到较大提高,开阔了视野,并总结了很多有意义的经验,使本人学年论文得以顺利完成,再次对杨老师表示最诚挚的感谢。参 考 文 献 1 王珊,陈红数据库系统原理教程M北京:清华大学出版社,1998.7. 2 丁振凡JAVA语言实用教程M北京:邮电大学出版社,2008.1. 3 王晓军,田中雨,刘跃军JSP动态网站开发基础教程与实验指导M 清华大学出版社,2008.6. 4孙鑫Java Web开发详解M北京:电子工业出版社,2006.4. 5 严蔚敏,吴伟民,米宁数据结构M北京:清华大学出版社,2008.6. 6 胡大奎,陈酌JSP高级开发技术M成都:中国水利水电出版社,2001.12.