基于JSP和MySQL实现的图书管理系统

攀登者ing

发布日期: 2020-11-11 14:31:50 浏览量: 456
评分:
star star star star star star star star_border star_border star_border
*转载请注明来自write-bug.com

摘要

本设计以图书管理业务为对象,系统实现用的前台开发工具是eclipse,后台数据库为MySQL。设计过程中的重点和难点是对整个系统的需求分析和数据库详细设计。

该系统对数据进行保存、修改、删除等管理。为用户提供了一个友好、简单快捷的运行操作平台。该系统对数据进行保存、修改、删除等管理,为用户提供了一个友好、简单快捷的运行操作平台。本系统的各界面设计友好、流程正确、功能也较为完善,旨在为用户提供方便快捷的服务,使人们走近书籍,走进书籍,热爱读书。

本次设计意在为图书管理行业提供一个简便、易操作、可靠的借还管理系统,实现图书借阅、书店人员的更新及管理。

关键词:MySQL;图书管理系统;借书还书;排行榜;问题反馈

1 前言

随着社会经济的迅速发展和科学技术的全面进步以及计算机事业的飞速发展,以计算机科学与通信技术为基础的信息管理系统IE处于蓬勃发展的时期。随着经济文化水平的显著提高,人们对生活质量及工作环境的要求也越来越高,但伴随着人的劳动强度的增大,以及社交活动的广泛开展,如何来提高人民纸质书本阅读量,是一个很现实的问题。无疑,科技的蓬勃发展使更多人依赖电子书,逐渐失去了对阅读纸质书本重要性的理解。如今书籍的发展,也继承了信息化的发展道路,网络的兴起,给了人们各种各样不同的选择。与此同时,为了管理好一个书店的正常营运,管理问题也就提上了日程。随着图书借阅问题的白热化,管理难度也越来越大,如何优化书店的日常管理也就成为了一个大众化的课题。

在计算机飞速发展的今天,将计算机这一信息处理利器应用于书店的日常管理已是势必所然,面且这也将为商店管理带来前所未有的改变,它可以带来意想不到的效益,同时也会为书店的飞速发展提供无限潜力。采用计算机管理信息系统已书店管理科学化和现代化的重要标志。要想在激烈的市场竞争中立于不败之地,没有现代化的管理是万万不行的。

通过对书店管理日常工作的详细调查,搜集了大量的资料,从系统结构的组织,功能的实现,技术的要求以及可行性等多方面进行考虑,我认为本课题是一个适应现今书店信息管理需求的计算机信息管理系统,具有一定的实际开发价值和使用价值。

2 概述

2.1 系统主要功能

  • 读者:登录注册,借阅还书,查询书籍,查看当前借阅信息以及历史借阅信息,查看、查询读者借阅榜以及借阅书籍借阅榜,问题反馈以及查询反馈结果等功能

  • 管理员:对图书、图书分类、读者信息的增删改查,查看全部读者当前借阅信息以及借阅历史,查看、查询书籍借阅榜及读者借阅榜,查看、查询用户反馈信息并修改反馈状态(未解决或已解决)

  • 超级管理员:除管理员权限外,新增管理员权限。对管理员信息进行增删改功能。为书店员工定制个人账号,方便管理

2.2 系统相关说明

为图书管理行业提供一个简便、易操作、可靠的借还管理系统,实现图书借阅、书店人员的更新及管理。

本设计以图书管理业务为对象,系统实现所用前台开发工具是eclipse,后台数据库为MySQL。设计过程中的重点及难点是对整个系统的需求分析和数据库详细设计。

该系统对数据进行保存、修改、删除等管理,为用户提供了一个友好、简单快捷的运行操作平台。本系统的各界面设计友好、流程正确、功能也较为完善,旨在为用户提供方便快捷的服务,使人们走近书籍,走进书籍,热爱读书。

3 运行环境

3.1 系统的运行环境

3.1.1 系统运行硬件环境

  • CPU:PIV1.6G以上

  • 内存:256M以上

  • 硬盘:40G以上

  • 其他:光驱、3.5英寸软驱、鼠标

3.1.2 系统运行软件环境

  • 操作系统配置:Windows 10

  • 开发软件:eclipse

  • 编译环境:JDK1.8

  • 服务器:Tomcat

  • 驱动:JDBC

  • 数据库:MySQL

  • 框架:bootstrap

3.2 网络环境

本系统需要运行在单位局域网,要求服务器、客户端计算机连接在此网络上。

4 安装与配置

4.1 安装

  • eclipse的安装

  • Tomcat服务器的安装

  • MySQL数据库的安装

4.2 配置

  • Windows 10操作系统的配置

  • JDK1.8环境的配置

  • Tomcat服务器的配置

  • JDBC驱动的配置

  • MySQL数据库的配置

5 操作说明

该系统是基于eclipse的系统软件,在Tomcat服务器上运行主页面:http://localhost:8080/books/login.jsp(直接运行功能页面会报错)

根据输入的学号/工号及密码进入不同的主页面,主页面附有本项目各页面的操作简介,方便用户进行操作。

每个界面相应的功能再后续介绍中会一一指出,如有疑问或建议也可以进入反馈页面告知管理员,管理员会尽快联系您并解决问题。操作完毕后单机右上角的“退出”模糊框退出系统。

5.1 进入登录界面

输入账号(学号/工号)、密码及验证码进行登录,后台根据不同的账号密码识别到用户身份进入相应的主页面。尚未注册点击“注册即可快速注册”,也可以联系管理员添加账号。

登陆界面

注册页面

登陆失败(密码、验证码错误)

5.2 进入系统

5.2.1 读者界面

系统界面由图书查询、借阅信息、借阅历史、热门推荐、最佳读者、问题反馈构成。左上角“欢迎使用图书管理系统”字样在每一个功能页中都有,单击可以跳转到当前页面(主页面),右上角的模糊框(图5.5)内有以下三个功能:修改个人资料(图5.6),修改密码(图5.7),退出系统。

读者界面

模糊框

修改个人资料

修改密码

5.2.2 管理员与超级管理员界面

系统界面由图书管理、读者管理、图书分类管理、图书借阅信息、图书归还信息、管理员管理(需登录)(图5.9)、热门推荐、最佳读者、读者反馈构成。其中管理员管理功能为超级管理员管理权限(图5.10)。左上角“欢迎使用图书管理系统”字样在每一个功能页中都有,单击可以跳转到当前页面(主页面),右上角的模糊框内功能与读者页面功能相同。

管理员界面

超级管理员登录

超级管理员权限

5.3 图书查询

列出馆内所有图书的信息,包括图书号、图书类型、图书名称、作者名称、出版社、总数量。可以根据书名、作者、图书分类查询图书(图5.12),点击借阅按钮弹窗确认借阅,完成借阅图书操作(图5.13)。

图书查询功能页

查询图书

借阅图书弹窗

5.4 借阅信息

展示当前登录的读者正在借阅的图书信息。记录借阅日期与截至还书日期,延长期限需联系管理员,通过管理员权限进行延期操作。点击还书按钮弹窗确认还书,完成还书操作。

借阅信息功能页

确认还书弹窗

5.5 借阅历史

展示当前登录的读者历史借阅的图书信息。记录借阅日期与还书日期。

借阅历史功能页

5.6 热门推荐

根据借阅次数由高到低实时排序,展示图书的所有信息,可以根据书名、作者、图书分类查询图书,点击借阅按钮弹窗确认借阅,完成借阅图书操作。

5.7 最佳读者

根据借阅量由高到低实时排序,展示读者的ID、姓名、账号,可以根据以上信息查询读者借阅量以及当前排名。

5.8 问题反馈

根据给出的提示信息填写反馈内容,提交后转到反馈结果页面(图5.20),3s后自动跳转到“我的反馈”(图5.21),查看当前登录账号的历史反馈记录以及反馈信息的状态(未解决或已解决)。也可以在反馈页面直接链接跳转到“我的反馈”进行查看。

问题反馈功能页

反馈结果页面

我的反馈页面

5.9 图书管理

列出馆内所有图书的信息,包括图书号、图书类型、图书名称、作者名称、出版社、总数量。可以根据书名、作者、图书分类查询图书。添加图书弹出模糊框(图5.23)。点击修改按钮模糊框内修改图书信息(图5.24),点击删除按钮弹窗确认删除,完成删除图书操作(图5.25)。

图书管理功能页

添加图书模糊框

修改图书信息模糊框

删除图书弹窗

5.10 图书管理

列出记录的所有读者的信息,包括ID、账号、姓名、邮箱、手机号、可借阅天数、最大可借数。添加读者弹出模糊框(图5.27)。点击修改按钮模糊框内修改读者信息,点击删除按钮弹窗确认删除,完成删除读者操作。

读者管理功能

添加读者模糊框

5.11 图书分类管理

列出馆内所有图书分类信息,包括ID和图书分类名称。添加分类弹出模糊框(图5.29)。点击修改按钮模糊框内修改图书分类信息,点击删除按钮弹窗确认删除,完成删除图书分类操作。

图书分类管理功能页

添加分类模糊框

5.12 图书借阅信息

展示所有读者正在借阅的图书信息。记录图书、读者信息与借阅日期、截至还书日期,还书按钮帮助读者还书,点击还书按钮弹窗确认还书,完成还书操作。延期按钮修改截至还书日期(图5.31),一般以月为单位。

图书借阅信息功能页

延期模糊框

5.13 图书归还信息

展示所有读者已归还的图书信息。记录图书、读者信息与借阅日期、还书日期。

5.14 管理员管理(需登录)

图示已在5.2.2中给出,此选项仅供超级管理员使用,进入本页面需再次登录,且指定唯一账户密码(即为超级管理员账户密码),其中,添加管理员弹出模糊框(图5.33)。

5.15 热门推荐

根据借阅次数由高到低实时排序,展示图书的所有信息,可以根据书名、作者、图书分类查询图书。

5.16 最佳读者

根据借阅量由高到低实时排序,展示读者的ID、姓名、账号,可以根据以上信息查询读者借阅量以及当前排名。

5.17 读者反馈

列出记录的所有读者反馈信息,包括ID、读者ID、标题、问题页面、问题描述、联系电话及问题状态。可以根据读者ID、标题、问题页面、问题描述以及问题状态信息查询反馈信息。点击修改按钮模糊框内修改问题状态(图5.37),点击删除按钮弹窗确认删除,完成删除图书操作。

图书借阅信息功能页

修改问题状态模糊框

6 数据库信息

6.1 读者 admin表

设置读者ID aid自10000起自动增长,账号 username非空(用于登录),借阅量 times默认为0,身份 status默认为1(读者),超级管理员添加管理员时将该项初始为2(管理员)。

  1. DROP TABLE IF EXISTS `admin`;
  2. CREATE TABLE `admin` (
  3. `aid` int(0) NOT NULL AUTO_INCREMENT,
  4. `username` char(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  5. `name` char(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  6. `password` char(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  7. `email` char(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  8. `phone` char(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  9. `times` int(0) NULL DEFAULT 0,
  10. `status` int(0) NULL DEFAULT 1,
  11. `lend_num` int(0) NULL DEFAULT NULL,
  12. `max_num` int(0) NULL DEFAULT NULL,
  13. PRIMARY KEY (`aid`, `username`) USING BTREE,
  14. INDEX `username`(`username`) USING BTREE,
  15. INDEX `name`(`name`) USING BTREE,
  16. INDEX `status`(`status`) USING BTREE
  17. ) ENGINE = InnoDB AUTO_INCREMENT = 10006 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

6.2 图书 book表

设置图书ID bid自2000001起自动增长,书名 name、书号 card、图书数量 num非空,借阅量 times默认为0。

  1. DROP TABLE IF EXISTS `book`;
  2. CREATE TABLE `book` (
  3. `bid` int(0) NOT NULL AUTO_INCREMENT,
  4. `name` char(205) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  5. `card` char(205) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  6. `autho` char(205) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  7. `num` int(0) NOT NULL,
  8. `press` char(205) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  9. `type` char(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  10. `times` int(0) NULL DEFAULT 0,
  11. PRIMARY KEY (`bid`) USING BTREE,
  12. INDEX `card`(`card`) USING BTREE,
  13. INDEX `name`(`name`) USING BTREE,
  14. INDEX `type`(`type`) USING BTREE
  15. ) ENGINE = InnoDB AUTO_INCREMENT = 2000007 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

6.3 图书分类 booktype表

设置图书分类ID tid自3001起自动增长,分类名 name非空。

  1. DROP TABLE IF EXISTS `booktype`;
  2. CREATE TABLE `booktype` (
  3. `tid` int(0) NOT NULL AUTO_INCREMENT,
  4. `name` char(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  5. PRIMARY KEY (`tid`) USING BTREE,
  6. INDEX `name`(`name`) USING BTREE
  7. ) ENGINE = InnoDB AUTO_INCREMENT = 3005 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

6.4 历史记录 history表

设置记录ID hid自400001起自动增长,记录状态 status已归还为0,未归还为1。

  1. DROP TABLE IF EXISTS `history`;
  2. CREATE TABLE `history` (
  3. `hid` int(0) NOT NULL AUTO_INCREMENT,
  4. `aid` int(0) NULL DEFAULT NULL,
  5. `bid` int(0) NULL DEFAULT NULL,
  6. `card` int(0) NULL DEFAULT NULL,
  7. `bookname` char(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  8. `adminname` char(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  9. `username` char(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  10. `begintime` char(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  11. `endtime` char(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  12. `status` int(0) NULL DEFAULT NULL,
  13. PRIMARY KEY (`hid`) USING BTREE,
  14. INDEX `status`(`status`) USING BTREE,
  15. INDEX `aid`(`aid`) USING BTREE,
  16. INDEX `bid`(`bid`) USING BTREE,
  17. INDEX `bookname`(`bookname`) USING BTREE,
  18. INDEX `adminname`(`adminname`) USING BTREE,
  19. INDEX `username`(`username`) USING BTREE
  20. ) ENGINE = InnoDB AUTO_INCREMENT = 400010 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

6.5 反馈信息 problem表

设置信息ID pid自5000001起自动增长,问题状态 status默认为“未解决”。

  1. DROP TABLE IF EXISTS `problem`;
  2. CREATE TABLE `problem` (
  3. `pid` int(0) NOT NULL AUTO_INCREMENT,
  4. `aid` int(0) NULL DEFAULT NULL,
  5. `name` char(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  6. `page` char(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  7. `body` char(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  8. `phone` char(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  9. `status` char(5) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '未解决',
  10. PRIMARY KEY (`pid`) USING BTREE
  11. ) ENGINE = InnoDB AUTO_INCREMENT = 5000002 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

7 类图

7.1 用户管理

7.2 系统信息

7.3 操作及反馈信息

总结

经过一个学期对《Javaweb开发技术》的学习,我学习到了更多的理论知识,学习了HTML表单、CSS技术、JS前台校验技术、JavaScript方法调用、JSP的基本语法、JSP内置对象的使用、servlet方法、页面的跳转等技术。这些技术都为我的课程实践和进一步的学习打下了坚实的基础。

上传的附件 cloud_download 基于JSP实现的图书管理系统.rar ( 15.62mb, 28次下载 )
error_outline 下载需要13点积分

keyboard_arrow_left上一篇 : 基于JAVA和MYSQL的医院简易挂号管理系统 基于JAVA的文件系统 : 下一篇keyboard_arrow_right



alexpan
2020-11-11 15:35:24
谢谢楼主,很有帮助
Lchun
2020-11-15 11:40:31
感谢!功能完善,可以来学习参考。
lxww1234
2020-11-18 23:40:10
mysql 数据库能换成sql server 数据库吗?
lxww1234
2020-11-18 23:41:10
数据库更换需要修改很多地方吗?
lxww1234
2020-11-22 18:42:48
java.lang.NullPointerException com.rain.dao.AdminDao.Login_verify(AdminDao.java:31) com.rain.servlet.LoginServlet.doPost(LoginServlet.java:55) javax.servlet.http.HttpServlet.service(HttpServlet.java:652) javax.servlet.http.HttpServlet.service(HttpServlet.java:733) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
lxww1234
2020-11-22 18:42:58
怎么处理?

发送私信

56
文章数
7
评论数
最近文章
eject