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

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

    推荐阅读
  • 回族服饰特点有哪些吸引人的魅力(回族服饰特点有哪些吸引人的魅力一览)

    回族服饰特点有哪些吸引人的魅力回族的服饰特点,回族服饰的主要标志在头部。回族老年妇女冬季戴黑色或褐色头巾,夏季则戴白纱巾,并有扎裤腿的习惯。山区回族妇女爱穿绣花鞋,并有扎耳孔戴耳环的习惯。审美观出发,阐释了回族穆斯林在服饰上的颜色、形式以及图案等的规定以及选择,形成了具有美观、端庄、俭朴等特色的且表现出民族心理及审美观念的回族服饰文化,这就是吸引人的魅力。

  • 打非的意思是(打非的意思是什么)

    接下来我们就一起去了解一下吧!打非的意思是打非释义:指打击制作、出售非法出版物的违法行为:扫黄打非。“打非”是指打击违反《中华人民共和国宪法》规定的破坏社会安定、危害国家安全、煽动民族分裂的出版物,侵权盗版出版物以及其他非法出版物。

  • 给领导和同事发邮件怎么称呼(如何写一封有温度)

    只要是汇报性的工作,一定是先“发送”给直接领导,其他人都是“抄送”,也包括你那位旁部门的领导。第2、良好的回信习惯。收到邮件以后尽快回复,这代表了你的能力、工作效率以及对对方的重视程度。总之,在按下“发送”键之前,请你务必仔细检查邮件标题、问候语、文字分段、措辞、颜色、字体、署名和附件等要素,直到确认无误。

  • 靠谱的汉字(汉字自己会说话128)

    汉字自己会说话128(确)《易经》乾卦中有一句“确乎其不可拔”,因对“确”字不解,故长时间不知怎样理解这句话。今天我们就来解解这个“确”字。所以可以推测,“确”字的含义,就是“用石块精准打击猎物或飞鸟”,后引申为“精准定位不再移动”,如确定、正确、确实、的确,等等,均使用的其原意或引申义。孔夫子所言“确乎其不可拔”,就是坚定不移地处于潜龙之位,不妄动!

  • 教师节应该给老师送什么礼物合适(送什么礼物老师最高兴)

    距离教师节还有2天,相信有些爸爸妈妈还没考虑好。不要怕宝宝涂鸦的不规整,这可是全球只有一只的限量款包包。跟着我们这样做,保证让你家宝贝的教师节贺卡与众不同。平时喝星巴克的杯签不要再扔啦。方法也不难,首先,在白纸上剪出宝贝小手掌的轮廓,作为百合花的花朵。对于即将到来的教师节,爸爸妈妈不要负担太重,实在没时间做这些,也没关系。

  • 新手开车自动挡起步正确步骤(自动挡开车起步7个步骤)

    第一种:适用于车辆在等红灯,或者堵车的时候使用,踩脚刹,挂入N挡,拉手刹,要行驶的时候,踩脚刹,挂D档,放手刹,强调一点,在等红绿灯或其他原因在马路上停车时,建议不要挂P挡,此时若后车追尾,极有可能导致变速箱损坏,虽然责任在后者,但受伤的是爱车啊。

  • 炝藕片的做法凉拌(炝藕片的做法)

    炝藕片的做法凉拌?以下内容希望对你有帮助!炝藕片的做法凉拌食材:莲藕150克、胡萝卜1个、姜、葱、蒜各5克。盐2克、食油10克、酱油2克、辣椒油10克。将莲藕、胡萝卜去皮,洗净,切片。锅中放水烧沸,下藕片、胡萝卜,加入少许盐,氽烫至熟,盛出、沥干水分,装入盘中。锅内油烧热,下姜、蒜炒香,盛出,调入酱油、醋,拌匀,淋在藕片上,撒上葱花,拌匀即可。

  • 长寿花怎么摘心打顶 长寿花苗打顶与摘心技巧

    长寿花寓意长寿健康,所以深受一些养花人士的喜爱。选择长寿花幼苗期,用消毒的剪刀直接将茎干顶端的生长点剪掉即可。生长旺盛时期要定期将残枝、病枝、残花等修剪掉。摘心打顶后将长寿花放在半阴的环境中养护,促进伤口恢复。

  • 小米入门机9月6日发布(这就是小米7月26发布给力新机)

    跟以往发布新品不同,昨天小米居然提前公布7月26日要发布的小米5X外形,正面中规中矩并不是全面屏,而背部是一体化金属机身设计,平行双摄后置指纹,跟iPhone7很相似。对于这款号称售价1999元,且主打线下的新机来说,小米5X的配置到底是什么样的呢?值得注意的是,小米5X还将3.5mm耳机插孔改到机身底部,而同在底部的还有USB-C接口。现在最大的问题是,1999元对应的小米5X,会是6GB内存骁龙660版本吗?这就是小米7月26发布给力新机1999】