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

基于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架构实现,程序运行结果良好,代码格式工整。

    推荐阅读
  • 将领被美国暗杀(他带着美国上层社会的秘密狱中自杀)

    爱泼斯坦狱中自杀身亡。爱泼斯坦一死,被认为带走了无数秘密。据美国某新闻网站报道,爱泼斯坦被指控对数十名未成年少女进行“性剥削”。他能够逃避惩罚,又得以离奇死亡,对他的调查结果势必会引来诸多揣测。爱泼斯坦的死亡,至少有三处疑点已经超出我们的合理认知。其次,爱泼斯坦在狱中一度被发现颈部有勒痕,并接受24小时的防范自杀监视。就目前情况看,该案在美国社会引发的反思声浪,并没有足够强烈。

  • 美联储鹰派强劲黄金小幅波动(黄金连连看第186期)

    美联储鹰派强劲黄金小幅波动国际金价周一亚市盘初徘徊在1105美元附近。上周五因美国PPI数据向好,令美联储9月会议加息的预期升温,金价曾一度刷新1098美元的一个月低位。本周市场关注的焦点无疑是周三开始的美联储FOMC会议,不过在那之前,周二的美国零售销售和周三的CPI数据也值得投资者的关注。面对本周即将来临的美联储会议有什么技术要点呢?我们有请景老师具体分析一下。感谢景老师为我们分析指导。

  • 观赏竹类植物的叶子发黄怎么办(叶子发黄解决方法)

    解决方法是将花卉脱盆置于通风阴凉自吹干土团后再装回盆中。解决方法是注意浇水时浇足、浇透即可。竹子不能在强烈的阳光下直射,那样会造成枝叶枯黄。冬天最好放在太阳充足的地方,如果放在光线不足的地方,加上通风不良和寒冷,均易引起枝叶枯黄。解决方法是补充光照可避免此病。化肥浓度过大或者施用尚未腐熟的肥料易出现烧苗即使干枯,长期不追肥,也会脱肥发黄。解决方法是应立即停止施肥,严重的用大量清洗冲洗部分肥料。

  • 为什么足球魅力这么大(吐槽足球要火太原)

    吐槽足球要火太原《后生传奇》第06集(点击观看)我想你们都知道了北京时间3月29日20:15,世预赛亚洲区40强赛最后一轮迎来最重要一战!中国男足在西安迎战卡塔尔队凭借黄博文和武磊在下半场的进球,中国队2-0完胜卡塔。

  • 旧款全进口沃尔沃(朋友购入老款沃尔沃)

    沃尔沃汽车相信大家对这款品牌的车应该不陌生,毕竟沃尔沃汽车在外形还是性能内饰上面都是一款豪车,而且沃尔沃汽车的价格也是相当贵的,毕竟是豪车就应该对得起这个价格。这不这位车主花了几万块就能够购入一辆老款的沃尔沃汽车。在图中这款式04年的沃尔沃s80,在外形上面绝对是特别的老款的,毕竟外形就能够证明一切,当然虽然是老款但是沃尔沃汽车独特的气质还是依旧存在。而且是L5的发动机。

  • 人到50就不要为难自己了(如果还一无所有)

    虽然奋斗了半生,可是并没有积蓄,依然过着一无所有的生活。其实,人到五十岁,如果还是一无所有,是有办法可以突破的。导致自己到了五十岁,仍然一无所有,让自己的生活焦虑不安。五十岁之后,如果还是一无所有,请学会开支节流,管住自己的钱。当一个人不再是“一无所有”的时候,生活就会有底气,觉得日子有奔头,生活也会有更多正能量。当你一无所有时,别将时间浪费。

  • 蛋鸡饲养成本计算公式(蛋鸡的利润与成本计算)

    ——产蛋期,在没有大的疫情发生的情况下,生长期12个月每只鸡的防疫费用一般约1元/只左右。2.淘汰鸡收入。疫病对蛋鸡业生产的危害性已不仅限于造成蛋鸡死亡或个体生产性能下降,更加突出表现为养殖户、消费者对疫病产生恐慌而弃养、弃购。做好鸡病的防治和疫苗接种,减少疾病的发生,是降低养殖风险的重要环节

  • 什么止汗露对狐臭管用(夏天狐臭越来越严重)

    皮肤科医师表示,狐臭的成因主要与个人体质因素有关。一般来说,止汗剂是希望减少汗水、脂肪的分泌;而除臭剂则是透过特定成分,来盖过,或减少异味问题。

  • 蒲公英花蒲公英花的功效与作用(蒲公英花的功效与作用介绍)

    蒲公英花蒲公英花的功效与作用清热解毒,蒲公英花具有一定的清热解毒、凉血消肿的作用。对于患有咽喉炎、急性扁桃体炎、腮腺炎、胃肠炎、胆囊炎等等病症都有一定的缓解调理效果。蒲公英花具有一定的抗病毒作用,能够帮助防治感冒。女性日常生活中可以多服用一些蒲公英花,因为不仅味道好,同时还能够很好的美容效果。现代研究发现,蒲公英的叶子和根具有很防治肿瘤的作用。

  • 何家劲钟丽缇主演电影(重温何家劲邹兆龙钟丽缇动作电影虎猛威龙)

    何家劲饰演的阿龙和邹兆龙饰演的副船长,两个人之间的格斗戏,也非常精彩。还有副船长设置的炸弹,绑在了小女孩西西身上,只要脚部一着地,炸弹就会引爆,看得人异常紧张,为她担忧。好在最后阿龙战胜了副船长,成功救出了西西。