肥宅钓鱼网
当前位置: 首页 钓鱼百科

基于SpringBoot从0到1编写一个图书管理系统(基于SpringBoot从0到1编写一个图书管理系统)

时间:2023-07-16 作者: 小编 阅读量: 1 栏目名: 钓鱼百科

管理员拥有所有的功能,可查询所有用户的借阅记录,并且可无限借书,且无超期限制。借阅记录页面显示用户是否超期,并且提示用户距离超期时间还有多少时间。前台通过jQuery发送Ajax请求到达BookController的deleteBookByNo方法,controller层调用service层,由service层通过MyBatis做数据库删除操作。前台通过jQuery发送Ajax请求到达BorrowRecordController,controller接收到http请求后,首先查询用户的借阅记录。

项目源码地址: https://muzidong.com/productDetail/8ff44c71db6b4b6aa30c71e646b1c557

需求分析基于SSMMySqlLayUI的图书管理系统。该系统应包含图书信息的添加,删除,修改,查询,上传图书封面、借书,还书功能,用户层面的查看个人 信息,以及登录,注销,修改用户密码功能,以及查询借阅记录功能。该系统区分三种不同的角色:管理员、教师、学生。管理员拥有所有的功能,可查询所有用户的借阅记录,并且可无限借书,且无超期限制。教师拥有图书查询,借书,还书,查询个人借阅记录,并且拥有用户层面的所有功能,最多可借10本书,超期天数为10天。学生拥有图书查询,借书,还书,查询个人借阅记录,并且拥有用户层面的所有功能,最多可借5本书,超期天数为5天。用户登录后可访问有权限的资源,若未登录,重定向到登录页面。借阅记录页面显示用户是否超期,并且提示用户距离超期时间还有多少时间。技术选型:前台 LayUIjQueryCSS后台 SpringBootMyBatisMySQL权限控制 Shiro

系统功能模块设计

项目结构

功能实现

输入用户名密码,系统通过shiro进行身份验证后,方可登录成功进入系统。有其他请求进入系统后,会被Shiro拦截,判断是否已经登录,如果已经登录,则允许继续访问,否则,重定向到登录页面,核心代码见下图:

注册

用户填写注册信息,选择相应的角色(本系统有三种角色:管理员、教师、学生),即可注册成功,插入用户表与用户角色对应关系表注销

修改密码

用户登录成功后,方可修改密码

图书查询

提供两个查询条件选择:图书编号、图书名称,均精确查找前台页面使用jQuery发送Ajax请求,请求到达BookController后,由BookController去调用service层,然后service层通过MyBatis去做数据库查询操作,返回给前台,核心代码如下:

图书编辑

只有管理员角色才拥有此操作权限。前台通过jQuery发送Ajax请求到达BookController的updateBook方法,首先校验图书编号、名称、出版社字段信息是否为空,校验通过后,调用service的更新方法,由service层通过MyBatis做数据库更新操作。核心代码如下:

图书删除

只有管理员角色才拥有此操作权限。前台通过jQuery发送Ajax请求到达BookController的deleteBookByNo方法,controller层调用service层,由service层通过MyBatis做数据库删除操作。核心代码如下:

图书入库

只有管理员角色才拥有此操作权限。前台通过jQuery发送Ajax请求到达BookController,字段进行为空校验后,验证编码对否已存在,如果已存在,则不允许新增,保证编码的唯一性,如果不存在,则调用service层的insert方法,service层通过MyBatis做数据库插入操作。插入成功后,将上传的封面图片保存。核心代码如下:

图书信息查看

此功能不涉及后台操作,将行数据展示到弹出层即可。

借书

前台通过jQuery发送Ajax请求到达BorrowController,BorrowController接收到http请求后,首先查询图书的当前库存数量,若库存不足,返回“库存不足,无法借书”;如果库存充足,接着查询登录人的借书未还数量,如果已经达到最大借书数量(管理员没有限制,教师最大数量为10,学生为5),则返回前台“已达到最大借书数量,不允许继续借书”;如果条件都满足后:开启数据库事务,做以下两个操作,两个操作都成功后,将事务提交,如果有一个失败,则将该事务回滚,保证数据的一致性:1、更新图书库存,通过MyBatis操作book表,将该书的库存-1;2、新增借阅记录,通过MyBatis操作borrow_recod表,插入一条借阅记录核心代码如下:

查询借阅记录

管理员角色可以查看所有用户的借阅记录,其他角色只能查询本人的借阅记录。前台通过jQuery发送Ajax请求到达BorrowRecordController,controller接收到http请求后,首先查询用户的借阅记录。查询到借阅记录集合后,做遍历操作,计算每条借阅记录距离超期时刻的时间间隔,并且计算该借阅记录是否超期(管理员没有超期限制,教师最长借书天数为10,学生为5),数据计算完成后,由BorrowRecordController返回前台。核心代码如下:

还书

用户点击还书按钮首先判断该借阅记录是否有还书时间,若有,提示前台“该书已还”。前台jQuery发送ajax请求到BorrowRecordController,controller接收到用户请求后,首先查询当前登录人是否为该借阅记录的借书人,如果不是,则返回前台“不允许替他人还书”;条件满足后,开始事务,做以下两个操作:1、更新图书库存,通过MyBatis操作book表做update操作,将本书的库存 12、更新借阅记录还书时间,通过MyBatis操作borrow_record表做update操作,将该借阅记录的还书时间更新为当前时间这两个操作全部都正确执行后,提交事务,否则将事务回滚,保证数据的一致性核心代码如下:

权限校验

本系统权限校验通过Shiro权限框架实现,分为操作权限和页面权限。非管理员权限无法查看图书管理页面,故无法做图书的新增,修改,删除操作用户登录后,将登陆人所属角色的所有操作权限交由Shiro管理,每一个请求进来后,都会由Shiro进行鉴权,鉴权通过后,方可处理该请求。系统菜单通过数据库进行配置,用户登录后,将登录人所属角色所拥有的的菜单权限查询出来,并展示再前台页面。核心代码如下:

项目总结本项目采用LayUICSSSpringBootjQueryMyBatisMavenMySQL架构实现,程序运行结果良好,代码格式工整。

    推荐阅读
  • be动词后加形容词表示什么(英语Be动词后可接形容词)

    英语形容词一般置于名词前面或be动词后面。答案当然是否定的。#英语##考研##雅思考试##大学英语四级##托福#,

  • 拖把发臭如何处理(拖把发臭怎样处理)

    拖把发臭如何处理加漂白水可消毒:使用后清洗要彻底,最后清洗时可以加点漂白水做消毒。酒精防止拖把发臭:清洗拧干后可以喷点酒精,以防止发臭。以布类帮助吸干水份:拖把无法确实拧干时,可使用不要的布来按压去除多余水分。另外,正确的存放与维护,会让拖把的使用寿命延长。良好的打扫效率靠拖把,而拖把效能的维持,就要靠正确的管理!

  • 情人早上问候语温馨(适合情人早上问候语)

    情人早上问候语温馨甜蜜时,你是我的宝贝;无聊时,你是我的猫咪;伤心时,你是我大哥哥;撒娇时,你是我依赖的;其实,我最想大声告诉你,你就是我的全部。若每一束阳光,都充满香味;若每一阵清风,都充满色彩;若每一段歌声,都充满姿态。我有一朵神奇的花,365个瓣,每个花瓣里都有我祝福。删除你的疲劳,剪切你的烦恼,复制你的快乐,粘贴你的幸福,储存到你的手机。

  • 重卡国六都有哪些(国六重卡使用成本究竟是高了还是低了)

    近日商车邦在抖音、快手等短视频平台发布的一则“购买国六重型车更具备通行、成本等优势”的视频引发了众多卡友的热议,从近3000条的评论中折射出目前国六重卡面临的实际成本问题。但单就市场实际反馈来看,参与讨论的卡友对于“国六重型车辆在成本上更有优势”并不认同。除了购置成本比国五车型贵1万-2万元以外,商车邦主要从使用成本方面进行简要分析。“吃好的、喝好的,太娇贵”是卡友群里经常出现的对国六产品幽默的总结。

  • 肺部长了几个小结节怎么办(彻底读懂肺部小结节)

    肺部发现小结节,决不可忽视!首先我们需要明确两点:一、肺部小结节和肺癌啥关系?“百度百科”对肺部小结节的界定为,“肺部小结节又称为小肺癌,周围型肺癌瘤体直径≤2cm者称为小肺癌,直径≤1cm者称为微小肺癌。”由此看来,良性恶性是有规律可循的。癌前病变或者已经是癌的肺部小结节:多数没有任何症状。

  • 下雪儿童画作品(为大家准备一张雪天主题创意儿童画原创课件作品)

    喜欢这样的课件作品吗?第一步第二步第三步第三步第五步第六步第七步

  • 西方美学的法典是哪部著作 西方法学经典著作

    有佚失,现存二十六章,主要讨论悲剧和史诗。有人认为失传的第二卷可能是讨论喜剧的。对现存26章的内容,有六分说、五分说、三分说三个分法。《诗学》里亚里士多德表达了对艺术及悲剧的观点,认为艺术的本质是摹仿;而悲剧是对于一个严肃、完整、有一定长度的行动的摹仿。《诗学》对国人也有较深的影响。

  • 男士衣服穿搭讲解(男人穿衣的品味)

    面料厚不不代表这件Tee选用的面料就好,也看不出它在设计和工艺上用不用心。除了面料之外,版型和剪裁设计上的作用是非常巨大的。另一个你要观察的,是T恤的袖长和袖口的松紧。T恤下摆的位置,应该刚好盖住男生腰带多一点的位置。对于品质要求比较高的T恤来说,PIMA棉和有机棉的这两种面料,现在用得会更多一些。这就是好的T恤它在开发时,会重视面料洗涤变形的影响。

  • 应聘职业规划怎么写 面试个人职业规划怎么写简短

    对于,这份工作,有什么样的为之努力的前景。在做职业规划之前,首先要对自己做一个深入的分析,SWOT分析法就是一个比较实用的工具,S指的是优势,W劣势,O机会,T威胁。在充分认识了自己的优势和不足,以及行业和职业的发展前景及要求后,接下来就是要根据个人情况来确定职业生涯目标了。

  • 茶叶妙用(茶叶妙用是什么)

    茶叶妙用茶叶中含有茶多酚,有抗氧化作用,可防止肌肤衰老。茶叶还能抗辐射,尤其适合长期用电脑的女性,可抑制皮肤色素沉着,减少过敏反应的发生。此外,茶叶的鞣酸作用可以缓解皮肤干燥,对于患湿疹的儿童也非常适用。在茶叶中,绿茶的茶多酚含量最丰富。因此,不妨经常用绿茶水洗洗脸。利用茶叶水洗脸可使皮肤光泽,润滑更有弹性,尤其是隔夜茶,不能喝,可以用其来洗脸。