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.hqwc.cn/news/310170.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

最新ChatGPT网站源码,支持Midjourney绘画,GPT语音对话+GPT-4识图理解能力+ChatFile文档对话总结+DALL-E3文生图

一、前言 SparkAi创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统&#xff0c;支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美&#xff0c;可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署AI创作Ch…

Python中property特性属性是什么

在Java中&#xff0c;通常在类中定义的成员变量为私有变量&#xff0c;在类的实例中不能直接通过对象.属性直接操作&#xff0c;而是要通过getter和setter来操作私有变量。 而在Python中&#xff0c;因为有property这个概念&#xff0c;所以不需要写getter和setter一堆重复的代…

遇到DDOS怎么办,盾真的可以抗攻击吗

网络在以难以想象的速度发展&#xff0c;黑客们针对网络漏洞发起的攻击也从未停止&#xff0c;但复杂的网络环境让网络安全的维护更为艰难&#xff0c;如果游戏公司没有做好防御措施&#xff0c;黑客发起攻击只是时间问题。在网络攻击愈加多元化的今天&#xff0c;游戏行业可以…

【C语言】一篇文章深入解析联合体和枚举且和结构体的区别

文章目录 &#x1f4dd;前言&#x1f320; 联合体类型的声明&#x1f309;联合体的特点 &#x1f320;相同成员的结构体和联合体对⽐&#x1f309;联合体⼤⼩的计算 &#x1f320;联合体应用&#x1f309;枚举类型的声明 &#x1f320;枚举类型的优点&#x1f309; 枚举类型的使…

听GPT 讲Rust源代码--src/tools(38)

File: rust/src/tools/clippy/clippy_dev/src/lib.rs rust/src/tools/clippy/clippy_dev/src/lib.rs文件是Clippy开发工具的入口文件&#xff0c;其作用是提供Clippy开发过程中所需的功能和工具。Clippy是一个Rust代码的静态分析工具&#xff0c;用于提供各种有用的代码规范、编…

[Angular] 笔记 22:ElementRef

chatgpt: ElementRef 是 Angular 中的一个类&#xff0c;它用于包装对 DOM 元素的引用。它允许开发者直接访问与 Angular 组件关联的宿主 DOM 元素。 当在 Angular 中需要直接操作 DOM 元素时&#xff0c;可以使用 ElementRef。通常情况下&#xff0c;最好避免直接操作 DOM&a…

八皇后问题(C语言)

了解题意 在一个8x8的棋盘上放置8个皇后&#xff0c;使得任何两个皇后都不能处于同一行、同一列或同一斜线上。问有多少种方法可以放置这8个皇后&#xff1f; 解决这个问题的目标是找到所有符合要求的皇后摆放方式&#xff0c;通常使用回溯算法来求解。回溯算法会尝试所有可能…

56.网游逆向分析与插件开发-游戏增加自动化助手接口-通过UI分析自动药水设定功能

内容来源于&#xff1a;易道云信息技术研究院VIP课 上一节内容&#xff1a;自动药水设定功能的逆向分析-CSDN博客 这次是假设没有之前的思路积累的话&#xff0c;怎样去找按钮事件。 通过ui当做切入点去做&#xff0c;就是一个窗口它显示不显示&#xff0c;游戏怎样控制这个…

STL——集合算法

算法简介&#xff1a; set_intersection // 求两个容器的交集set_union // 求两个容器的并集set_difference // 求两个容器的差集 1.set_intersection 函数原型&#xff1a; set_intersection(iterator beg1, iterator end1, iterator beg2, iterator end2, iterator dest);…

史上最好用的SSH工具,好用到超出你的想象

给大家推荐一个功能强大&#xff0c;跨平台切风格很现代化的SSH管理工具——Xterminal。 1、功能特点 布局自由 命令管理 酷炫皮肤 在线编辑 文件上传方式多样 本地融合显示 支持rzsz 文件断点上传 服务器监控 2、来吧&#xff0c;展示 布局自由 双击修改标题 自…

.FileZilla的使用和主动模式被动模式介绍

FileZilla的使用和主动模式被动模式介绍 1.FileZilla的使用和主动模式被动模式介绍1.安装下载2.新建组和用户2.1打开后出现如下界面2.2点击编辑打开组这个选项2.3点击添加组以后&#xff0c;点击确认2.4输入组的名称&#xff0c;列如我输入的niyin2.5点击用户选项2.6像上面一样…

【owt-server】一些构建项目梳理

【owt-server】清理日志&#xff1a;owt、srs、ffmpeg 【owt】p2p client mfc 工程梳理【m98】webrtc vs2017构建带符号的debug库【OWT】梳理构建的webrtc和owt mfc工程 m79的mfc客户端及owt-client