基于Java实现(MVC)图书管理系统

需求分析

系统用户分为:借阅者(包括学生、教师及其他用户)、管理员
借阅者的主要功能:

  • 个人信息管理:查看、修改个人基本信息;
  • 查询图书、借书、还书、查询借阅记录、本人可借图书总数、目前在借的数量等;借阅图书时,学生借书限制:正在借阅的图书数量最多3本,每本图书借阅时间最多2个月;教师借书限制:正在借阅的图书数量最多5本,每本图书借阅时间最多3个月;其他用户借书限制:正在借阅的图书数量最多2本,每本图书借阅时间最多1个月;

管理员的主要功能:

  • 图书信息的添加、修改、删除、查询(按书名、书号、作者、出版社等查询)、统计(可按图书类别:外文图书、中文图书、计算机图书、文学、历史......等统计;按出版社统计......);
  • 借阅者信息的添加、修改、删除、查询;借阅者借书限制条件的设定、查看与修改等。
  • 图书借阅与归还登记、借阅者借阅记录查询(借阅时间、借阅图书......)、图书借阅查询(包括图书当前状态、被借阅次数、借阅时间、借阅者......)等
  • 数据导入导出:从Excel导入用户信息与图书信息到数据库、将数据库中的用户信息与图书信息导出到Excel;

功能划分

模块用例图


数据库实体关系

数据库关系模型

  • 图书表(图书id、IBSN号、图书名称、作者、出版社、借阅次数、类型id、可借阅数、总数、图片url地址、创建者、创建时间)
  • 记录表(记录id、用户id、记录类型、图书id、图书名称、创建时间)
  • 图书类型表(类型id、类型名称、创建者、创建时间)
  • 角色表(角色id、角色名称、创建时间)
  • 用户表(用户id、角色id、登录名、密码、用户名、权限标识、邮箱、性别、创建时间)
  • 借阅限制表(限制id、角色id、最多借阅数、最长借阅时间)

UI设计

登录界面

用户可在该界面输入用户名、密码、及验证码进行登录,在登录过程中,后台会自动识别该用户的权限等级,根据权限来显示不同的操作菜单。

若出现用户名或密码、验证码错误的情况,都会出现对应提示,如下图所示。

用户名或密码错误:

验证码输入错误:

操作界面

用户登录后会根据是否是管理员显示不同的操作菜单,用户可以根据不同的需要来选择对应的操作。

系统管理员操作界面:


用户操作界面:

功能开发

数据库建表:

分模块开发

开发工具:eclipse,采用MVC框架进行开发

工程名:library-management,具体结构如图所示

controller包下为与服务器进行数据交互的servlet,如图

entity包为所需要调用的实体类:

Service包为业务逻辑处理,支撑了图书系统的所有业务需求:

util包为工具包:封装一些反射Dao类、常量类、数据库连接池类、读写Excel工表格类等

Vo包封装了一个ajax返回数据类:

filter包则有一些全局的过滤器:

测试部署

运行环境:

  • 开发语言:Java
  • 开发环境:Eclipse
  • 数据存储:存储数据和访问数据,使用更复杂的数据模型,以支持更复杂的功能。
  • 操作界面:使用浏览器+html页面作为操作界面;
  • 设计模式:理解并使用MVC(Model-View-Control)的设计模式进行系统结构的设计;
相关推荐
嘻哈∠※5 小时前
0061基于 SpringBoot 的投稿与稿件处理系统设计与实现
java·spring boot·后端
WWJA王文举5 小时前
I²C通信完整流程详解:START、地址、ACK、数据、Repeated START和STOP一次讲透
c语言·开发语言
zhanghaha13146 小时前
Python进阶教程:6_JSON 数据解析 —— 新手完全指南
开发语言·python·json
白狐_7986 小时前
408数据结构第8章:排序②——性质对比秒杀、场景选择与外部排序
java·数据结构·算法
zander2586 小时前
LeetCode 84:柱状图中的最大矩形——单调栈如何确定左右边界
java·数据结构·算法
码匠许师傅7 小时前
【C++ 面试真题】聊聊 C++ 的拷贝构造与拷贝赋值
java·c++·面试
qq_448011167 小时前
C语言中的动态内存分配
c语言·开发语言·php
汉字萌萌哒8 小时前
2024CSP-J入门级C++真题详解
开发语言·c++
arbboter8 小时前
【网络工具】NetProxy网络代理用户手册
开发语言·网络·c#·网络代理·网络异常·代理工具
极创信息8 小时前
系统安全隐患全方位排查方案:标准化渗透测试全流程
java·opencv·struts·数据挖掘·eclipse·语音识别·hibernate