1、河北农业大学本科毕业论文(设计)题 目: 基于Jsp的图书管理系统后台管理摘要随着互联网的不断发展,掌握计算机知识并能够熟练的应用,是培养新型人才的一个重要环节。Java是最具生命力的计算机语言之一。作为一种程序设计语言,Java是分布式的、面向对象的、不依赖于机器的结构,它最大的成功之处在于它的平台无关性和具有强大的网络编程功能。图书馆管理系统正适应了当今社会快节奏地生活,基于JSP开发设计,面对管理人员和学生两种不同人群的应用系统。本文从图书馆管理系统的现状、可行性到数据库的设计,再到各功能模块的实现做了详细的介绍。本系统是以MyEclipse为开发工具,MySQL为数据库开发平台,Tom
2、cat作为应用服务器,采用JSP技术开发的图书馆管理系统。本系统主要有学生和管理员两个角色。其中学生主要实现了登录、查询图书、查看借阅记录、退出系统这些功能。管理员主要实现了登录、学生管理、图书管理、借书管理、还书管理、退出系统这些功能。 关键词:图书馆管理,Java,JSPABSTRACTAs the Internet continues to evolve, computer literacy and the ability to skilled application is to cultivate new talent is an important part. Java is one
3、 of the most viable computer language. As a programming language, Java is a distributed, object-oriented, does not depend on the structure of the machine, its greatest success is that it is platform independent and has a strong network programming.Library management system is adapted to live in toda
4、ys fast-paced society, based on JSP development, design, management staff and students face two different populations applications. In this paper, the status of library management system, the feasibility of the design of the database, to the realization of various functional modules made a detailed
5、introduction.The system is based MyEclipse development tools, MySQL for the database development platform, Tomcat as the application server using JSP technology development library management system. The system has two roles of students and administrators. The main achievement among students log in,
6、 check books, check circulation records, exit the system these functions. The main achievement of the administrator login, student management, library management, library management, book management, and exit the system these functions.Keywords: library management, Java, JSP目录1绪论51.1 图书馆管理系统的现状51.2图
7、书管理系统设计的目的和意义52开发工具及相关技术介绍62.1 Java介绍62.2 JSP介绍62.3 Tomcat服务器介绍62.4 MyEclipse开发工具的介绍72.5 MySQL介绍73系统分析73.1经济可行性分析73.2 技术可行性分析73.3 系统总体功能需求83.4学生功能分析83.5 管理员功能分析94系统设计与实现104.1 数据库的设计104.2 主要页面设计124.3 主要代码124.4系统的实现175总结20参考文献.21致谢.211绪论 图书馆要对大量的书籍、读者信息以及两者间相互联系产生的借书信息、还书信息进行详细系统的管理。原始的人工记录方法既效率低又容易出现
8、错误,大大影响了图书馆的正常管理工作。因此,图书管理系统需要对书籍资源、读者资源、借书信息、还书信息等进行有效的管理,及时了解各个环节中信息的变更,有利于提高管理的效率。1.1图书馆管理系统的现状目前,图书馆的藏书种类多,检索速度慢、效率低。由于图书的数量多,将图书准确的分类,要想实现快速的检索,手工进行是非常困难,往往是终于查到了二维的信息,图书馆中却没有此书或已被别人借走。图书馆的规模越大,这个问题就会越突出。由于读者多,借书、还书的操作也就多。然而,随之而来的大量的借书、还书登记、实存图书的更新以及借出图书超期,遗失等处理,往往是人工操作所难以胜任的,而且人工操作经常会出现差错。图书馆的
9、图书应根据科学技术的发展和教学工作的需要及时添加和更新,然而由于藏书数量及图书种类越来越多,加上自然损耗,人为破坏,使图书的统计工作难以及时完成,藏书的更新也就很难有针对性的进行,藏书的知识结构得不到良好地控制。为了解决这些图书的管理问题,以及学生借阅图书的信息问题,改变传统的管理方式,采用简单的电脑操作方式,开发图书管理系统也就成了迫在眉睫的问题了。1.2图书管理系统设计的目的和意义随着科学技术的发展,计算机的应用越来越广泛。图书馆在正常运行的过程中总是会产生各种需要处理的信息,管理人员要对产生的数据进行及时的处理。为了提高图书馆对图书的自动化的管理,能够更快速地满足读者的要求,提高工作效率
10、,设计和开发图书管理系统是非常必要的。图书馆管理系统的主要功能是实现对图书的借阅和归还的管理,学生及图书信息的更新,围绕这些主要功能,本系统主要有学生和管理员两个角色。其中学生主要有登录、查询图书、查看借阅记录、退出系统等功能。学生登录系统后,可以根据书名来查询图书并且能够查看自己的借阅记录。管理员主要有登录、图书管理、学生管理、借书管理、还书管理、退出系统。管理员登录系统后,会进入到管理员的首页面,其中图书管理主要实现了对图书的增加、删除、更新和按照书名进行查询。学生管理主要实现了对学生的增加、删除、更新和按照学号进行查询。借书管理是通过输入学号和书号来实现借书功能。还书管理是通过输入学号和
11、书号来实现借书功能。2开发工具及相关技术介绍2.1 Java介绍计算机语言有严格的使用规范。如果没有按规格写程序,计算机就不能理解它。Java的开发者Sun Microsystems希望能够控制这一重要的新计算机语言这么做有一个非常好的理由:防止它出现不统一的标准。Java语言规范和JavaAPI定义Java的标准。Java语言规范是一种语言的技术定义,包括Java程序语言的语法和语义。完整的Java语言规范可以在应用程序接口(API)包括用于开发Java程序准备的类和接口。Java语言的规范是稳定的,而API一直在扩展。在Sun公司的Java网站上(Java.S),可以查看和下载最新版的Ja
12、va API。2.2 JSP介绍Java Server Page简称JSP,是Servlet的扩展,目的是简化建立和管理动态网站的工作。在传统的网页HTML文件中加入Java程序片段(Scriptlet)和JSP标签。初次调用JSP时,由服务器将JSP文件翻译成Servlet源文件,再编译。当修改JSP文件时,再调用时重新编译。JSP技术的应用一次编写,就可以在任何具有符合Java语法结构的环境上运行。 JSP技术具有很多自身的优点。一是具有简便性和有效性。JSP动态网页的编写与一般的静态HTML的网页的编写是十分相似的。只是在原来的HTML网页中加入一些JSP专有的标签,或是一些脚本程序。二
13、是程序的独立性。JSP是Java API 家族的一部分,它拥有一般的Java程序的跨平台的特性,换句话说,就是拥有程序对平台的独立性。三是程序的兼容性。应为JSP中的动态内容能以各种形式进行显示,所以它可以为各种客户提供服务。从使用HTML/DHTML的浏览器,到使用WML的各种手提无线设备,再到使用XML的B2B应用,都可以使用JSP的动态页面。四是程序的可重用性。在JSP页面中可以不直接将脚本程序嵌入,而只是动态的交互部分作为一个部件加以引用。这样,一旦部件写好,它可以为多个程序重复引用,实现了程序的可重用行。2.3 Tomcat服务器介绍Tomcat服务器是Apache Group Ja
14、karta小组开发的一个免费服务器软件,适合于嵌入Apache中使用,而且,它的源代码可以免费获得,你可以自由地对它进行扩充。Tomcat服务器的兼容性很好,如WebLogic服务器采用其为Web服务器引擎,Jbuilder将其作为标准的测试服务器,Sun公司也将其作为JSP技术应用的示例服务器。Tomcat服务器的性能稳定,而且免费,因而深受Java爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web应用服务器。Tomcat是一个小型的轻量级应用服务器,是开发和调试JSP程序的首选。当在一台机器上配置好Apache服务器,可利用它响应对HTML页面的访问请求。实际上Tomcat
15、t部分是Apache服务器的扩展,但它是独立运行的,所以当你运行Tomcat时,它实际上作为一个与Apache独立的进程单独运行的。2.4 MyEclipse开发工具的介绍MyEclipse是一个非常优秀的集成开发环境,它旨在简化用于多操作系统软件工具的开发过程,可以用于管理多种开发任务,其中包括测试、性能调整以及程序调试等,而且还可以集成来自多个供应商的第三方应用程序开发工具。通过集成大量的插件,MyEclipse的功能可以不断扩展,以支持各种不同的应用。MyEclipse平台是一个成熟的、精心设计的、可扩展的体系结构,用MyEclipse开发的插件,可以适应多平台的需要 , 且具有良好的可
16、扩展性和灵活性。2.5 MySQL介绍 MySQL是一种开放源代码的关系型数据库管理系统,MySQL数据库系统使用最常用的数据库管理寓言结构化查询语句(SQL)进行数据库的管理。由于MySQL是开放源代码的,因此任何人都可以在General Public License的许可之下下载源代码,兵可以根据个人需要进行修改。MySQL因为其速度、可靠性和适用性而备受关注。SQLyog是MySQL的图形化管理工具。他是一个易于使用的、快速而简洁的图形化管理MySQL数据库的工具,它可以在任何地点有效地管理你的数据库,而且它本身是完全免费的。3系统分析3.1经济可行性分析作为图书馆这样的商业性质较小的场
17、所,其经济成分比重相对较少,主要是支出的费用:其中包括设备购置费、软件开发费用、管理和维护费、人员工资和培训费等。由于各个图书馆实行统一操作,系统共享,其设备购置,人员工资,维护费用相对较少,前期的资金投入主要集中于购置图书上。建立信息中心,可将来自各方面的信息集中管理,提高图书管理的计划性和预见性,快速地反馈市场信息。3.2 技术可行性分析技术上的可行性分析主要分析现有技术条件能否顺利完成开发工作,硬件、软件配置能否满足开发者的需要,各类技术人员的数量,水平,来源等。图书馆管理系统的工作主要是在读者和图书馆之间架起一座桥梁,能相互沟通信息和处理信息。这一特点非常适合计算机特点,通过网络int
18、ernet技术,发挥计算机的信息传输速度快、准确度高的优势。计算机硬件和软件技术的飞速发展,为系统的建设提供了技术条件。3.3 系统总体功能需求图书管理系统主要是为了方便管理人员对图书和读者信息的管理。使用图书管理系统,一方面,管理员的工作量会减少,工作效率就会提高。另一方面,学生查询图书会更加方便,还可以随时查看自己的借阅记录。该图书管理系统主要有两个角色,学生和管理员。学生的功能主要有,登录系统,查询图书,查看自己的借阅记录和退出系统。管理员的功能主要有,登录系统,图书管理,学生管理,借书管理,还书管和退出系统。登录系统图书管理学生管理借书管理还书管理退出系统图书管理系统学生管理员登录系统
19、查询图书查看借阅记录退出系统 图3.1系统功能模块图3.4学生功能分析1学生登录学生登录系统,需要输入其学号和密码(学号为10001,密码为123456),然后点击登录按钮,建立与数据库的连接。如果学号或密码错误,则出现提示学号或密码错误。2.查询图书 学生成功登录系统后,点击查询图书,就进入了图书查询页面,需要输入要查询的图书的书名,然后点击确定按钮,建立与数据库的连接。如果数据库中有该图书,就会显示该图书的相关信息,如果数据库中没有该图书,就会显示数据库没有此书。3.查看借阅记录学生成功登录系统后,点击查看借阅记录,就会进入查看借阅记录页面。若果该学有借阅记录,就会显示该学生的借书记录情况
20、,包括书号,学号,借书时间和还书时间。这样学生们就可以随时查看自己的借书情况并能及时的归还图书。4.退出系统 学生成功登录系统后,完成了各项操作,这时点击退出系统,就会自动的退出该系统,并会自动跳转到登录界面。3.5 管理员功能分析1管理员登录管理员登录系统,需要输入其姓名和密码(姓名为admin,密码为admin),然后点击登录按钮,建立与数据库的连接。如果姓名或密码错误,则出现提示姓名或密码错误。2.图书管理 管理员成功登录系统后,点击图书管理按钮,就会进入图书管理页面。该页面主要包括查询图书,增加图书,更新图书,删除图书。其中查询图书需要输入图书的名字,然后点击确定按钮,如果数据库中有该
21、图书,就会显示该图书的相关信息,如果数据库中没有该图书,就会显示数据库没有此书。增加图书,需要输入新书的书号,书名,作者,出版社,是否被借阅(默认值为否),然后点击确定按钮,新书就会添加到了数据库中。更新图书,如果图书的信息有误,需要修改,这是点击更新图书,就会进入更新图书页面,把需要修改的信息填好后,点击提交按钮,该书的信息就会被修改,提示修改成功。删除图书,如果某些图书被丢或者需要换新的版本,这时直接点击删除按钮,该图书就会从数据库中移除,提示删除成功,如果该书被借,删除时就会提示该书被借,不能删除。3.学生管理管理员成功登录系统后,点击学生管理按钮,就会进入学生管理页面。该页面主要包括查
22、询学生,增加学生,更新学生,删除学生。其中查询学生需要输入要查询学生的学号,然后点击确定按钮,如果数据库中有该学生,就会显示该学生的相关信息,如果数据库中没有该学生,就会显示数据库没有此学生。增加学生,需要输入学生的学号,姓名,密码,年龄,性别,班级,学院,借阅权限(默认值为是),然后点击确定按钮,该学生就会添加到了数据库中。更新学生,如果学生的信息有误,需要修改,这是点击更新学生,就会进入更新学生页面,把需要修改的信息填好后,点击提交按钮,该学生的信息就会被修改,提示修改成功。删除学生,如果该学生以毕业,这时直接点击删除按钮,该学生就会从数据库中移除,提示删除成功,如果该学生有借阅记录,就会
23、提示该学生有借书记录,不能删除。4.借书管理 管理员成功登录系统后,点击借书管理按钮,就会进入借书管理页面。这是管理员进行借书操作的页面,需要输入书号和学号,如果学生要借书,管理员要输如该学生的学号和被借图书的书号,然后点击确定按钮,如果学号和书号输入正确,就会显示借书成功,如果学号或书号输入有误,就会提示您输入的学号或书号错误。5.还书管理管理员成功登录系统后,点击还书管理按钮,就会进入还书管理页面。这是管理员进行还书操作的页面,需要输入书号和学号,如果学生要还书,管理员要输如该学生的学号和要还图书的书号,然后点击确定按钮,如果学号和书号输入正确,就会显示还书成功,如果学号或书号输入有误,就
24、会提示您输入的学号或书号错误。6.退出系统 管理员成功登录系统后,完成了各项操作,这时点击退出系统,就会自动的退出该系统,并会自动跳转到登录界面。4系统设计与实现4.1 数据库的设计应用SQLyog建立一个新的数据库library,在library数据库中建立manager,student,book,borrow_book四个表。其中manager是管理员表,主要包括管理员号,管理员姓名、密码、角色(用来区分管理员身份)。Student是学生表,主要包括学号,姓名,密码,年龄,性别,班级,学院,借阅权限(默认值为是)。book是图书表,主要包括书号,书名,作者,出版社,是否被借阅(默认值为否)
25、。borrow_book是借阅记录表,主要包括借书号,学号(Student表中的学号),书号(book表中的书号),借书时间,应还书时间。建表语句如下:create database if not exists library;USE library;/*Table structure for table book */DROP TABLE IF EXISTS book;CREATE TABLE book ( bookNo varchar(50) NOT NULL, bookName varchar(50) default NULL, author varchar(50) default NU
26、LL, publishment varchar(50) default NULL, borrowed varchar(50) default 否, PRIMARY KEY (bookNo) ENGINE=InnoDB DEFAULT CHARSET=utf8;/*Table structure for table borrow_book */DROP TABLE IF EXISTS borrow_book;CREATE TABLE borrow_book ( borrowId int(13) NOT NULL auto_increment, bookNo varchar(50) NOT NUL
27、L, stuNo varchar(50) NOT NULL, borrowTime varchar(50) default NULL, returnTime varchar(50) default NULL, PRIMARY KEY (borrowId) ENGINE=InnoDB DEFAULT CHARSET=utf8;/*Table structure for table manager */DROP TABLE IF EXISTS manager;CREATE TABLE manager ( mgNo int(13) NOT NULL, mgName varchar(50) NOT N
28、ULL, mgPassword varchar(20) NOT NULL, role int(11) default 9, PRIMARY KEY (mgNo) ENGINE=InnoDB DEFAULT CHARSET=utf8;/*Table structure for table student */DROP TABLE IF EXISTS student;CREATE TABLE student ( stuNo varchar(50) NOT NULL, stuName varchar(50) NOT NULL default , stuPassword varchar(50) NOT
29、 NULL default , stuAge int(3) default NULL, stuSex varchar(50) default NULL, stuClass varchar(50) default NULL, stuDepartment varchar(50) default NULL, stuPermitted varchar(50) default 是, PRIMARY KEY (stuNo) ENGINE=InnoDB DEFAULT CHARSET=utf8;4.2 主要页面设计 该图书管理系统的主要页面有:1登录页面(学生登录和管理员登录)2学生操作页面3学生查询图书操
30、作页面4学生查看借阅记录操作页面5学生退出系统页面6管理员操作页面7管理员图书管理操作页面8. 管理员用户管理操作页面9. 管理员借书管理操作页面10. 管理员还书管理操作页面11. 管理员退出系统页面4.3 主要代码1.管理员登录的代码package cn.hebau.library.dao.impl;public class ManagerDaoMysqlImpl implements ManagerDao Connection conn = new DbConnection().getConnetion();PreparedStatement pstmt = null;public in
31、t loginCheck(Manager manager) int result = 0;String sql = select * from manager where mgName=? and mgPassword=?;try pstmt = conn.prepareStatement(sql);pstmt.setString(1, manager.getMgName();pstmt.setString(2, manager.getMgPassword();ResultSet rs = pstmt.executeQuery();if(rs.next()result = rs.getInt(
32、role); catch (SQLException e) e.printStackTrace();return result;2.查询借书记录,借书,还书。package cn.hebau.library.dao.impl;public class BorrowDaoMysqlImpl implements BorrowDao Connection conn = new DbConnection().getConnetion();PreparedStatement pstmt = null;public List SelectAll(String StuNo) String sql = se
33、lect * from borrow_book where stuNo=?;List borrowed = new ArrayList (); try pstmt = conn.prepareStatement(sql);pstmt.setString(1, StuNo);ResultSet rs = pstmt.executeQuery();while(rs.next()Borrow bw = new Borrow();bw.setBorrowId(rs.getInt(borrowId);bw.setBookNo(rs.getString(bookNo);bw.setStuNo(rs.get
34、String(stuNo);bw.setBorrowTime(rs.getString(borrowTime);bw.setReturnTime(rs.getString(returnTime);borrowed.add(bw); catch (SQLException e) e.printStackTrace();finallyif(pstmt!=null)try pstmt.close(); catch (SQLException e) e.printStackTrace(); return borrowed;public boolean check(String bookNo) Stri
35、ng sql = select * from borrow_book where bookNo=?; boolean flag = true; try pstmt = conn.prepareStatement(sql);pstmt.setString(1, bookNo);ResultSet rs = pstmt.executeQuery();if(rs.next()flag = false; catch (SQLException e) e.printStackTrace();return flag;public void insert(Borrow borrow) String sql
36、= insert into borrow_book (bookNo,stuNo,borrowTime,returnTime) values(?,?,?,?);try pstmt = conn.prepareStatement(sql);pstmt.setString(1, borrow.getBookNo();pstmt.setString(2, borrow.getStuNo();pstmt.setString(3, borrow.getBorrowTime();pstmt.setString(4, borrow.getReturnTime();pstmt.execute(); catch
37、(SQLException e) e.printStackTrace();finallyif(pstmt!=null)try pstmt.close(); catch (SQLException e) e.printStackTrace();if(conn!=null)try conn.close(); catch (SQLException e) e.printStackTrace();public List SelectAll() String sql = select * from borrow_book ;List borrowed = new ArrayList (); try ps
38、tmt = conn.prepareStatement(sql);ResultSet rs = pstmt.executeQuery();while(rs.next()Borrow bw = new Borrow();bw.setBorrowId(rs.getInt(borrowId);bw.setBookNo(rs.getString(bookNo);bw.setStuNo(rs.getString(stuNo);bw.setBorrowTime(rs.getString(borrowTime);bw.setReturnTime(rs.getString(returnTime);borrow
39、ed.add(bw); catch (SQLException e) e.printStackTrace();finallyif(pstmt!=null)try pstmt.close(); catch (SQLException e) e.printStackTrace(); return borrowed;public boolean delete(String bookNo, String stuNo) String sql = delete from borrow_book where stuNo=? and bookNo=?;boolean flag = false;try pstm
40、t = conn.prepareStatement(sql);pstmt.setString(1, stuNo);pstmt.setString(2, bookNo);int row = pstmt.executeUpdate();if(row=1)flag=true; catch (SQLException e) e.printStackTrace();finallyif(pstmt!=null)try pstmt.close(); catch (SQLException e) e.printStackTrace(); return flag;4.4系统的实现1.学生输入学号和密码后,点击登
41、录按钮,就进入登录页面。登录如下图所示:2. 学生登录成功后,就进入学生操作页面。该页面如下图所示:3. 学生点击查询图书后,就进入查询图书页面。该页面如下图所示:4. 学生点击查看借阅记录后,就进入查看借阅记录页面。该页面如下图所示:5.管理员输入姓名和密码后,点击登录按钮,就进入管理员登录页面。登录如下图所示:6. 管理员登录成功后,就进入管理员操作页面。该页面如下图所示:7. 管理员点击用户管理后,就进入用户管理页面。该页面如下图所示:8. 管理员点击图书管理后,就进入图书管理页面。该页面如下图所示:9. 管理员点击借书管理后,就进入借书管理页面。该页面如下图所示:10. 管理员点击还书
42、管理后,就进入还书管理页面。该页面如下图所示:11. 管理员点击借书记录后,就进入借书记录页面。该页面如下图所示:5总 结本图书管理系统主要综合应用了Java、Jsp、数据库等知识设计而成。本图书管理系统,虽然能够实现对学生信息和图书信息的管理这些基本的功能,但在系统其它功能和一些细节方面还存在着不足。通过这次对图书管理系统设计与实现,我意识到了我们所学知识的重要性,自身还存在不足,在以后的学习和工作中,要继续加强对专业知识的学习。参 考 文 献1 耿祥义,张跃平JSP实用教程M北京:清华大学出版社,2003.5 2 王珊,萨师煊数据库系统概论(第四版)M北京:高等教育出版社,2006.53
43、林琪,朱涛江JSP设计 M北京:中国电力出版社,2004.124 孙卫琴. 基于MVC的JAVAWEB.设计与开发M北京:电子工业出版社,2005.65 唐有明, 吴华等. JSP动态网站开发 清华大学出版社,2006.86 孔长征,姜岭. Dreamweaver短期培训教程.北京电子希望出版社,2002.47 林康司,林上杰. JSP2.0技术手册M. 电子工业出版社,20048 赵强. J2EE应用开发M. 电子工业出版社,20069 明日科技. JSP开发技术大全M.人民邮电出版社,200710 Y.Daniel Liang(著),万波等(译)。Java语言程序设计 基础篇。第6版。北京:机械工业出版社,200811 郑义(主编),史东承,段雪莹(副主编)。SQL 2000 数据库基础与应用。长沙:国防科技大学出版社,200812 烦兆东,李冬,何海霞(著)。网页设计基础教程与上机指导。第2版。北京:清华大学出版社,2007 致谢本次毕业设计项目是基于Jsp的图书管理系统。首先我要感谢我的指导老师马建斌老师。马老师对待学生非常的有耐心,每次遇到不懂的问题,马老师总会很有耐心的帮我解决问题。马老师知识渊博,教学态度严谨,对待学生很亲切。在马老师