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

news2024/9/21 22:29:17

需求分析

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

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

管理员的主要功能:

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

功能划分

模块用例图

image.png
image.png

数据库实体关系

image.png

数据库关系模型

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

UI设计

登录界面

image.png
用户可在该界面输入用户名、密码、及验证码进行登录,在登录过程中,后台会自动识别该用户的权限等级,根据权限来显示不同的操作菜单。
若出现用户名或密码、验证码错误的情况,都会出现对应提示,如下图所示。
用户名或密码错误:
image.png
验证码输入错误:
image.png

操作界面

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

功能开发

数据库建表:

image.png

分模块开发

开发工具:eclipse,采用MVC框架进行开发
工程名:library-management,具体结构如图所示
image.png
controller包下为与服务器进行数据交互的servlet,如图
image.png
entity包为所需要调用的实体类:
image.png
Service包为业务逻辑处理,支撑了图书系统的所有业务需求:
image.png
util包为工具包:封装一些反射Dao类、常量类、数据库连接池类、读写Excel工表格类等
image.png
Vo包封装了一个ajax返回数据类:
image.png
filter包则有一些全局的过滤器:
image.png

测试部署

运行环境:

  • 开发语言:Java
  • 开发环境:Eclipse
  • 数据存储:存储数据和访问数据,使用更复杂的数据模型,以支持更复杂的功能。
  • 操作界面:使用浏览器+html页面作为操作界面;
  • 设计模式:理解并使用MVC(Model-View-Control)的设计模式进行系统结构的设计;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2097553.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于jetpackCompose实现最简单的悬浮窗效果

最近在研究使用compose框架实现悬浮窗效果,期间遇到很多问题,各种搜索结果琳琅满目,不是插件就是非常复杂的代码,只能潜心研究,最后得出了这个几行代码就能实现悬浮窗的方案。 为了技术人的脑力能得到应有的回报&#…

PTA - C语言接口题集

目录 6-1 计算两个复数之积(结构体函数)6-2 字符定位(返回字符的地址,指针)6-3 求结构体平均成绩(变量名(数组名)用.;指针(带有*)用->)6-4 删除字符串中数字字符6-5 使用函数找出数组中的最大…

系统更新报“更新失败“

系统更新报"更新失败" 本章只针对统信UOS系统 系统检查更新失败,或者系统更新的过程中失败,或者提示依赖错误,检测更新失败。 故障处理: 检查下网络是否正常,系统时间是否正常;开启开发者&…

MOS管驱动电路阻值如何选取?以及为什么要有下拉电阻

开通时,电源为高电平,会通过Rg1给MOS的Cgs充电,关断时,Cgs通过Rg2放电.实现慢开快关的过程 如果驱动阻值太大,开关会很慢,会让MOS管的损耗增加,降低了效率,dv/dt,di/dt也…

电路基础 ---- 运放里的虚短虚断

令人稀里糊涂的虚短虚断 想必好多人在学习硬件电路分析时,都会听到虚短虚断这个专业术语,但是对于新手玩家,这个术语不好理解,比如我自己,经常将这两个概念混淆。最近刷到大佬的视频,讲解的非常简洁易懂&a…

蓝卓与用友、中控签署全面战略合作协议

8月9日,蓝卓数字科技有限公司(以下简称“蓝卓”)与用友网络科技股份有限公司(以下简称“用友网络”)与中控技术股份有限公司(以下简称“中控技术”)签署全面战略合作协议。三方将在平台产品融合…

MySQL5.7版本实现数据库审计功能

一、基本介绍 MySQL 数据库审计(MySQL Database Auditing)主要将用户对数据库的各类操作行为记录审计日志,以便日后进行跟踪、查询、分析,以实现对用户操作的监控和审计。审计是一项非常重要的工作,也是企业数据安全体…

1412312

c语言中的小小白-CSDN博客c语言中的小小白关注算法,c,c语言,贪心算法,链表,mysql,动态规划,后端,线性回归,数据结构,排序算法领域.https://blog.csdn.net/bhbcdxb123?spm1001.2014.3001.5343 给大家分享一句我很喜欢我话: 知不足而奋进,望远山而前行&am…

BugKu练习记录:你喜欢下棋吗

题目: 密码全为小写,格式bugku{} 解压密码: 你喜欢下棋吗? 解压密码为小写 4423244324433534315412244543棋盘密码解密: thisispolybius用这个密码解压,打开flag.txt文件 一种5bit的编码 bugku里面的内…

Transformer 动画揭秘:数据处理的四大关键技术

0背景 Transformer 大模型,一种基于自注意力机制的神经网络架构,已被广泛应用于各种自然语言处理任务,比如:机器翻译、文本摘要、生成问答等。 从端到端的角度来看,Transformer 大模型中数据的处理流程主要包括四个阶…

基于matlab的行人和车辆检测系统

基于matlab的行人和车辆检测系统 【目标检测】基于计算机视觉,含GUI界面 算法:二帧差分法,三帧差分法,混合高斯建模,ViBe算法。 功能:对视频中出现的动态目标进行逐帧作差分析或ViBe算法检测,使…

[线程] 定时器 及 实现定时器

文章目录 一. 定时器二. 标准库中的定时器三. 实现定时器1. 创建MyTimerTask类2. 通过一定的数据结构, 保存多个任务3.MyTimer类的构造方法4. 实现schedule方法完整代码: 一. 定时器 定时器, 就是"闹钟"的效果 指定一个任务(Runnable), 并且指定一个时间, 此时这个任…

PMP核心知识点—之项目运行环境

知识点1:项目合规性 不合规的项目就不应该做。 知识点2:项目影响两大因素 组织过程资产、事业环境因素 知识点3:职能型以及项目型组织结构 知识点4:矩阵型组织结构 弱矩阵—平衡矩阵—强矩阵 (项目经理权力的强弱) 知识点5&am…

Oracle rac模式下undo表空间爆满的解决

文章目录 前言一、确认对应实例的undo表空间二、确认对应实例undo的文件位置三、确认回滚段使用情况四、检查undo segment状态五、创建新的undo表空间并进行切换六、等待原undo表空间segment状态变更为offline七、删除原undo表空间以及数据文件 前言 一、确认对应实例的undo表空…

如何把自动获取的ip地址固定

在大多数网络环境中,‌设备通常会自动从DHCP服务器获取IP地址。‌这种动态分配IP的方式虽然灵活方便,‌但在某些特定场景下,‌我们可能需要将设备的IP地址固定下来,‌以确保网络连接的稳定性和可访问性。‌本文将详细介绍如何把自…

C++知识点概述

C知识点概述 C是一种功能强大的编程语言,广泛应用于系统软件、游戏开发、高性能服务器和客户端应用等领域。在大学课程中,C通常作为计算机科学和软件工程学科的核心课程之一。以下是C的一些关键知识点,这些知识点构成了大学课程的基础。 1.…

CTF入门之奇怪的密码及图形编码总结篇(持续更新中ing)

CTF入门之奇怪的编码及图形编码(持续更新中ing UTF-8,unicode乱码社会主义核心价值观编码:在线解码: 与佛论禅:在线解密网站: 与熊论道:在线网站解密: 兽音:在线网站解密&#xff1a…

MySQL数据库(0)—— 云服务器安装MySQL

本篇主要介绍在Ubuntu环境下安装MySQL 一,查看系统版本 lsb_release -a二,添加MySQL APT 源 2.1 访问下载页面并下载发布包 传送门:MySQL :: Download MySQL APT Repository 下载之后,就可以通过 rz 命令上传到云服务器上&…

大牛荐书:美团王慧文清华大学产品经理课推荐阅读书单

美团网的王兴大家应该都很熟悉,作为美团的掌舵人和1号位,带领美团于2018年9月在港交所上市,公司市值在国内互联网大厂中排名第4,公司全职员工数11.5万人,2023年实现营业收入2767亿元,利润233亿元。 相比王兴…

MATLAB下的粒子滤波例程|三维非线性模型|组合导航|PF代码(无需下载,直接复制到MATLAB上即可运行)

文章目录 模型与程序概述PF介绍运行结果程序代码各部分模块的作用模型与程序概述 模拟INS、GPS组合导航的应用背景。在模型预处理的时候通过迭代计算三维位置的真值和滤波前(模拟纯INS计算)的值。 通过 P F PF PF(粒子滤波, p