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

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

    推荐阅读
  • 饮食牢记4个小技巧(容易令你毁容的五大饮食习惯)

    另外,多吃蔬菜,尤其是胡萝卜、西红柿等富含维生素的蔬菜。皮肤指导老师建议不爱吃水果的美眉们可以将水果榨汁来饮用,也同样能够起到护肤润肤的效果哦!

  • 河北省小麦规模化经营(院市合作助力黑小麦产业发展)

    河北省农林科学院供图据了解,经过十几年的发展,目前馆陶县已有4000多户农民种植黑小麦,常年种植面积3.6万亩,农户平均每亩增收600元,县域内2家大型黑小麦产品加工企业研发的8个系列40多种黑小麦产品,销往全国各地。为进一步规范馆陶黑小麦种植和品种管理,全力推动黑小麦特色产业发展壮大,把馆陶打造成全国知名黑小麦基地,河北省农林科学院粮油作物研究所与邯郸市开展“馆陶黑小麦标准化种植及产业化开发”院市合作项目。

  • 武汉首付115万的小户型(2022年武汉首付地图)

    门槛最低的是武湖和汉口北,首付门槛在20万,其次是小军山24-25万;而盘龙城、吴家山老城、青菱西岸首付门槛在30万左右。光谷中心城除了这两盘,其余在售楼盘都在70万,这两盘也没什么货量了,中建星光城只剩最后1栋。

  • 苦荞能不能吃 苦荞麦有什么作用与功效

    苦荞味苦,性平寒,民间又称其为“净肠草”。

  • 平安树养殖方法和注意事项(平安树养殖方法和注意事项是什么)

    以下内容希望对你有帮助!平安树养殖方法和注意事项浇水:养殖平安树时,需要在春夏秋季节每周浇水2-3次,在冬季时每月浇一次水。光照:保证平安树每日接受6-8个小时的光照。温度:将平安树放置在温度为10-25度的室内。在养护期间,如果出现黄叶,应及时摘除,并远离盆栽附近,叶片会出现病斑传染,夏季室外养护要注意暴雨,如果盆内积水过多会导致植株黄化、烂根、落叶。

  • excel正则匹配内容(匹配出24小时时间格式内容)

    excel正则匹配内容?今天小编要和大家分享的是,Excel正则表达式,匹配出24小时时间格式内容的操作,比如下图的B列数据有英文中文数字,但是我只想要日期格式中的时间内容,我来为大家讲解一下关于excel正则匹配内容?跟着小编一起来看一看吧!

  • 起亚K3后门怎么打不开 起亚k3后车门打不开

    大多数车辆后门都有儿童锁,车门侧面有儿童标志。起亚k3后排坐垫怎么装首先,将后排座椅罩“平放”在座椅表面,将罩插入座椅后放下周围的边缘,将座椅翻转过来,并分别在其周围系上松紧带。

  • 幼儿园管理工作现场会(寸石镇中心幼儿园开展)

    为进一步加强全园教职工的工作责任心,提高执行力,转变工作作风,营造一种“忠诚职业、敬畏岗位、履职尽责”的良好工作氛围,寸石镇中心幼儿园于9月13日起,开展“我的岗位我负责,我的工作请放心”专题活动。9月14日中午,该园园长金珍组织大家进行了相关演讲,一篇篇激情洋溢的演讲,深深打动了在场教师的心,会场不时响起阵阵掌声。

  • 爷爷去世了孙子什么时候可以结婚(老人去世多久孙子才能结婚)

    时代不同了,现在不足作为行为准则。但是在这期间内办婚礼最好是只领证,不大操大办,等守孝时间到了再补办婚礼。讲究1、老人去世后,最好不要挂红灯笼,因为红色代表喜庆,这在守孝期间是不允许的。

  • 如何提高学习成绩方法(成绩差的原因是不会学习)

    看着孩子坐在写字台前,一直努力的一百遍抄写汉字,一百遍抄写英语单词,一遍遍阅读课文,孩子真的很用功,家长可以作证,但是成绩就是不好。白天上课的时候,没有走心,没有认真听讲,晚上自己学习也是走马观花,因为有些单词或者汉字的读音、写法,孩子也不确定是正确的。抄单词和抄写汉字,这样的机械运动,其实提高学习效果很有限,记住汉字或者英语单词,是需要在具体文章环境中,不是依靠简单的抄写。