Java项目:100SpringBoot图书管理系统

博主主页:Java旅途
简介:分享计算机知识、学习路线、系统源码及教程
文末获取源码

一、项目介绍

图书管理系统基于SpringBoot+Mybatis开发,系统分为两种角色,分别是管理员和普通用户。

管理员功能如下:

  • 书籍类别管理
  • 新书录入
  • 新书查询
  • 用户管理
  • 借阅记录

普通用户功能如下:

  • 查询图书
  • 借书
  • 还书
  • 借书记录

二、技术框架

  • 后端:SpringBoot,Mybatis
  • 前端:layui

三、安装教程

  1. 用idea打开项目
  2. 在idea中配置jdk环境
  3. 配置maven环境并下载依赖
  4. 新建数据库,导入数据库文件
  5. 在application.yml文件中将数据库账号密码改成自己本地的
  6. 启动运行,理员账号密码 admin/123456 ,普通用户账号密码 user/123456

四、项目截图

image-20230707144920575

image-20230707145001896

image-20230707145437864

image-20230707145458282

image-20230707145535260

image-20230707145616572

五、相关代码

BookController

package com.zbw.controller;import com.zbw.domain.Book;
import com.zbw.domain.BookCategory;
import com.zbw.domain.Vo.BookVo;
import com.zbw.service.IAdminService;
import com.zbw.service.IBookCategoryService;
import com.zbw.service.IBookService;
import com.zbw.utils.page.Page;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;import javax.annotation.Resource;
import java.util.List;@Controller
public class BookController {@Resourceprivate IAdminService adminService;@Resourceprivate IBookService bookService;@Resourceprivate IBookCategoryService bookCategoryService;/*** 管理员&emsp;&emsp;录入新书** @param book* @return*/@RequestMapping("/addBook")@ResponseBodypublic String addBook(Book book) {boolean res = adminService.addBook(book);if (res) {return "true";}return "false";}/*** 返回&emsp;&emsp;查询书籍结果页** @param pageNum* @param model* @return*/@RequestMapping("/showBooksResultPageByCategoryId")public String showBooksResultPageByCategoryId(@RequestParam("pageNum") int pageNum, @RequestParam("bookCategory") int bookCategory, Model model) {Page<BookVo> page = bookService.findBooksByCategoryId(bookCategory, pageNum);model.addAttribute("page", page);model.addAttribute("bookCategory", bookCategory);return "admin/showBooks";}/*** 返回用户&emsp;&emsp;查询书籍结果页** @param bookPartInfo* @return*/@RequestMapping("/findBookByBookPartInfo")public String findBooksResultPage(@RequestParam("bookPartInfo") String bookPartInfo, Model model) {List<BookVo> bookVos = bookService.selectBooksByBookPartInfo(bookPartInfo);model.addAttribute("bookList", bookVos);return "user/findBook";}/*** 查询所有书籍种类** @return*/@RequestMapping("/findAllBookCategory")@ResponseBodypublic List<BookCategory> findAllBookCategory() {return adminService.getBookCategories();}/*** 新建书籍种类** @param bookCategory* @return*/@RequestMapping("/addBookCategory")@ResponseBodypublic String addBookCategory(BookCategory bookCategory) {boolean b = adminService.addBookCategory(bookCategory);if (b) {return "true";}return "false";}/*** 根据书籍种类id删除种类** @param bookCategoryId* @return*/@RequestMapping("/deleteCategory")@ResponseBodypublic String deleteBookCategoryById(@RequestParam("bookCategoryId") int bookCategoryId) {int res = bookCategoryService.deleteBookCategoryById(bookCategoryId);if (res > 0) {return "true";}return "false";}}

BorrowingController

package com.zbw.controller;import com.zbw.domain.Vo.BorrowingBooksVo;
import com.zbw.service.IBorrowingBooksRecordService;
import com.zbw.utils.page.Page;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;import javax.annotation.Resource;@Controller
public class BorrowingController {@Resourceprivate IBorrowingBooksRecordService borrowingBooksRecordService;/*** 返回所有用户借书记录页面** @return*/@RequestMapping("/allBorrowBooksRecordPage")public String allBorrowingBooksRecordPage(Model model, @RequestParam("pageNum") int pageNum) {Page<BorrowingBooksVo> page = borrowingBooksRecordService.selectAllByPage(pageNum);model.addAttribute("page", page);return "admin/allBorrowingBooksRecord";}
}

大家点赞、收藏、关注、评论啦 、👇🏻点开下方卡片👇🏻关注后回复 100

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/823720.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

前端优化 - 防抖和节流

&#x1f4e2; 鸿蒙专栏&#xff1a;想学鸿蒙的&#xff0c;冲 &#x1f4e2; C语言专栏&#xff1a;想学C语言的&#xff0c;冲 &#x1f4e2; VUE专栏&#xff1a;想学VUE的&#xff0c;冲这里 &#x1f4e2; CSS专栏&#xff1a;想学CSS的&#xff0c;冲这里 &#x1f4…

驾驭AI助手,开启高效创作之旅:一篇文章,轻松搞定!

在信息爆炸的时代&#xff0c;内容创作已成为个人和企业的核心竞争力。但撰写一篇高质量的文章需要大量时间和精力。现在&#xff0c;有了AI助手&#xff0c;这些烦恼全部消失 首先&#xff0c;我们要进入首助编辑高手主页面&#xff0c;并在上方的板块栏里选择“AI文章创作”…

计算机组成原理之BCD码和奇偶校验码小白秒懂

BCD码简介 原文文档下载https://download.csdn.net/download/m0_46579394/88681870 BCD码也称二进码十进数&#xff0c;BCD码可分为有权码和无权码两类。其中&#xff0c;常见的有权BCD码有8421码、2421码、5421码&#xff0c;无权BCD码有余3码、余3循环码、格雷码。8421BCD码…

嵌入式科普(8)ESP-IDF newlib相关介绍和对比分析

一、目的/概述 二、资料来源 三、ESP-IDF简介 3.1 ESP-IDF FreeRTOS 3.2 ESP-IDF heap_caps 3.3 ESP-IDF newlib 四、对比 嵌入式科普(8)ESP-IDF newlib相关介绍和对比分析 一、目的/概述 1、在我的嵌入式科普(6)你听说过FreeRTOS heap6吗&#xff1f;…

用通俗易懂的方式讲解大模型:Llama2 部署讲解及试用方式

Llama 一直被视为 AI 界的开源大模型中的巨擘。然而&#xff0c;由于其开源协议的限制性条款&#xff0c;商业用途的免费使用一直未能实现。 但这种情况在最近发生了根本性的转变&#xff0c;Meta 发布了备受瞩目的 Llama2&#xff0c;这是一个免费可供商业使用的版本。 这个…

西北工业大学计算机组成原理实验报告——verilog后两次

在单周期CPU的基础上开发实现流水线CPU 说明&#xff1a; 1. 该PDF带有大纲功能&#xff0c;点击大纲中的对应标题&#xff0c;可以快速跳转。 2. 目录层级为&#xff1a; 一、一级标题 &#xff08;二&#xff09;二级标题 &#xff08;3&#xff09;三级标题 4.四级标…

【JavaWeb】day01-HTMLCSS

day01-HTML&CSS HTML 图片标签&#xff1a;<img> src&#xff1a;指定图像URL&#xff08;绝对路径/相对路径&#xff09;width&#xff1a;图像宽度&#xff08;像素/相对于父元素的百分比&#xff09;height&#xff1a;图像高度&#xff08;像素/相对于父元素的百…

Java项目:101SpringBoot仓库管理系统

博主主页&#xff1a;Java旅途 简介&#xff1a;分享计算机知识、学习路线、系统源码及教程 文末获取源码 一、项目介绍 仓库管理系统基于SpringBootMybatis开发&#xff0c;系统使用shiro框架做权限安全控制&#xff0c;超级管理员登录系统后可根据自己的实际需求配角色&…

搜索算法和推荐算法、广告算法的区别

广告和推荐算法的技术框架比较相似&#xff0c;在线计算时都分为召回&#xff08;candidates generating&#xff09;和排序&#xff08;candidates ranking&#xff09;两个阶段&#xff08;这似乎是计算资源有限条件下&#xff0c;所有检索问题的通用架构&#xff09;。 在某…

C# Image Caption

目录 介绍 效果 模型 decoder_fc_nsc.onnx encoder.onnx 项目 代码 下载 C# Image Caption 介绍 地址&#xff1a;https://github.com/ruotianluo/ImageCaptioning.pytorch I decide to sync up this repo and self-critical.pytorch. (The old master is in old ma…

最新Redis7哨兵模式(保姆级教学)

一定一定要把云服务器的防火墙打开一定要&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;否则不成功&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&…

java设计模式实战【策略模式+观察者模式+命令模式+组合模式,混合模式在支付系统中的应用】

引言 在代码开发的世界里&#xff0c;理论知识的重要性毋庸置疑&#xff0c;但实战经验往往才是知识的真正试金石。正所谓&#xff0c;“读万卷书不如行万里路”&#xff0c;理论的学习需要通过实践来验证和深化。设计模式作为软件开发中的重要理论&#xff0c;其真正的价值在…

销售转行上位机编程:我的学习与职业经历分享

同学们好&#xff0c;我是杨工&#xff0c;原先是一名销售。 通过在华山编程培训中心学习&#xff0c;成功转行上位机编程&#xff0c;对此我想分享学习和职业经历。 在职业生涯的早期&#xff0c;我并没有考虑将技术融入到我的工作中。然而&#xff0c;在几次创业的失败后&a…

编程羔手解决Maven引入多个版本的依赖包,导致包冲突了

最近升级了些依赖发现有个hutool的方法老报错&#xff0c;java.lang.NoSuchMethodError: cn.hutool.core.util.ObjectUtil.defaultIfNull(Ljava/lang/Object;Ljava/util/function/Supplier;) 在 Maven 项目中&#xff0c;当不同的依赖模块引入 Hutool 的不同版本时&#xff0c…

C++编程中级阶段

目录 1.模版 1.1函数模版 1.1.1函数模版语法 1.1.2函数模版注意事项 1.1.3函数模版案例 1.1.4普通函数与函数模板的区别 1.1.5普通函数与函数模板的调用规则 1.1.6模版的局限性 1.2类模版 2.STL处识 3.STL常用容器 3.1string容器 3.2vector容器 3.3deque容器 3.…

竞赛保研 基于机器视觉的12306验证码识别

文章目录 0 简介1 数据收集2 识别过程3 网络构建4 数据读取5 模型训练6 加入Dropout层7 数据增强8 迁移学习9 结果9 最后 0 简介 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 基于机器视觉的12306验证码识别 该项目较为新颖&#xff0c;适合作为竞赛课题方向…

Go语言学习第二天

Go语言数组详解 var 数组变量名 [元素数量]Type 数组变量名&#xff1a;数组声明及使用时的变量名。 元素数量&#xff1a;数组的元素数量&#xff0c;可以是一个表达式&#xff0c;但最终通过编译期计算的结果必须是整型数值&#xff0c;元素数量不能含有到运行时才能确认大小…

神经网络:机器学习基础

【一】什么是模型的偏差和方差&#xff1f; 误差&#xff08;Error&#xff09; 偏差&#xff08;Bias&#xff09; 方差&#xff08;Variance&#xff09; 噪声&#xff08;Noise&#xff09;&#xff0c;一般地&#xff0c;我们把机器学习模型的预测输出与样本的真实label…

浅谈数据仓库运营

一、背景 企业每天都会产生大量的数据&#xff0c;随着时间增长&#xff0c;数据会呈现几何增长&#xff0c;尤其在系统基建基础好的公司。好的数据仓库需要提前规划和好的运营&#xff0c;才能支持企业的发展&#xff0c;为企业提供数据分析基础。 二、目标 提高数据仓库存储…