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

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

    推荐阅读
  • 3年前张艺谋看不起李连杰(6大导演评价李连杰)

    《少林寺》不仅是一部丰碑式作品,同时也是李连杰的成名作。因为李连杰不仅是演员,而且还是《精武英雄》的制作人,由他的正东电影公司出品,也就是老板。

  • g20全球税务改革(最低全球企业税)

    最低全球企业税(观察者网讯)据路透社10月30日消息,为期两天的G20峰会上,来自世界最大的20个经济体领导人将支持经济合作与发展组织(OECD)签订的15%的全球最低企业税率协议,以期于2023年生效有研究显示,。

  • 你知道毕加索和梵高有什么区别吗(都是世界一流画家)

    毕加索的艺术人生无比辉煌:在其92岁辞世时,他留下了近四万幅画作、数幢豪宅和巨额现金。据测算,其遗产总值达到395亿元人民币。原来,毕加索不仅是位绘画天才,也是位营销天才。然而毕加索并没要酒庄付他设计费,而是接收了一批葡萄酒作为稿酬。毕加索一生顺遂,与他生来就具备社交商业的基因不无关系。

  • 自助更换驾驶证需要提前体检吗(换驾驶证可以自助体检了)

    日前,我区在政务服务中心推出“体检照相自助机”便民服务,一站式服务,省时又省力。有补换驾驶证业务需求的布丁们赶快前往体验吧~

  • 柿子皮能吃吗(柿子皮的功效)

    接下来我们就一起去研究一下吧!柿子皮也有很多食用注意事项,如果吃的方法不正确,可能会对身体健康造成很大的危害,身体会出现不舒服的症状,所以一定要特别注意。

  • 192.168.0.1路由器密码默认是多少(192.168.1.1路由器管理员默认密码初始密码是多少)

    不知道192.168.1.1管理员密码的解决办法是,悟途网小编建议把这台路由器恢复出厂设置。、重新设置这台路由器上网时,需要用到宽带账号、宽带密码。、如果你恢复出厂设置后,在浏览器中输入192.168.1.1后,仍然提示输入管理员密码;这种情况下,说明这台路由器并未成功恢复出厂设置,请重新执行恢复出厂设置的操作。源文来自192.168.1.1路由器管理员默认密码是多少_悟途网更多路由器问题欢迎访问~

  • 愚人节的开玩笑的句子(适合愚人节的句子)

    都说猪很懒,但我不这么认为至少现在,我发现有一头猪正在看短信,我来为大家讲解一下关于愚人节的开玩笑的句子?跟着小编一起来看一看吧!愚人节的开玩笑的句子都说猪很懒,但我不这么认为。你的口水流了好长呵,能不能收一收,都到我脚边了!我要告诉你一个秘密:……今天是愚人节,对不起,你被忽悠了。我愿意一生守在你的身边,冬天做你的棉被,夏天做你的电风扇。

  • 奔驰现在都是怀挡吗? 奔驰现在都是怀挡吗

    奔驰不全是胸挡,amg车型和老款都不是胸挡。块的使用:目前使用的有宝马7系,奔驰S级,奔驰r级,奔驰ML级,奔驰GL级。孕档是换挡时将变速杆拨到胸前造成的。汽车变速杆位于方向盘右下方,称为孕挡。宝马7系:宝马7系是宝马公司的豪华车系列,4门车身,前后驱动。宝马7系是宝马的旗舰车型,它只是采取了轿车的形式。该车长宽高分别为5212mm、1902mm、1478mm,轴距为3210mm。

  • 后备箱有鸡粪味怎么处理(教你快速处理气味)

    教你快速处理气味通风除味法,保持车厢新鲜空气的循环对流水果除味法,在车厢内放几个柠檬、苹果或菠萝,如果切开,果香会更好地挥发,抵挡车内异味其他热带水果也具备这个特效,因为它们生长在阳光充足、雨水充沛的热带或亚热带环境。

  • 怎么清洗大红虾才能干净(如何清洗大红虾才能干净)

    怎么清洗大红虾才能干净平时清洗大红虾时可以把多余的脚全部剪掉,只保留前面的两只大钳。要把龙虾头部前面1/3的地方用剪刀剪掉,这里是龙虾身体内没有消化掉的脏东西。清洗大红虾时一定要清洗腮,清洗时可以把大红虾头部两侧的壳微微翻起。看到大红虾的腮,直接用手摘除,再用清水洗干净即可。想把大红虾完全清洗干净,尾部和虾肠也要全部去掉。要用清水中加适量的醋,反复冲洗,可以去掉腥味。