作者: IT学长,从事软件开发 努力在IT搬砖路上的技术小白
公众号:IT学长】,分享计算机类毕业设计源码、IT技术文章、游戏源码、网页模板、程序人生等等。公众号回复 【粉丝】进博主技术群,与大佬交流,领取干货学习资料
关于转载:欢迎转载博主文章,转载时表明出处
求赞环节:创作不易,记得 点赞+评论+转发 谢谢你一路支持

查看更多系统:系统大全,课程设计、毕业设计,请点击这里查看

文章目录

  • 查看更多系统:[系统大全,课程设计、毕业设计,请点击这里查看](https://blog.csdn.net/qq_40625778/article/details/108213145)
  • 01 系统简述
  • 02 系统特点
  • 03 技术
    • 后端:
    • 前端:
  • 04 运行环境
  • 05 功能介绍
    • 图书管理
      • 图书列表:显示已经上架的图书信息,可对上架图书进行搜索、修改、删除操作。
      • 图书上架:录入图书信息,输入图书名称、作者、图书分类,页数,定价等数据进行图书录入。
    • 借阅管理
      • 搜索图书:根据图书名称、作者名称,图书分类等搜索图书。
      • 借阅图书:录入图书信息,输入图书名称、作者、图书分类,页数,定价等数据进行图书借阅。
      • 归还图书:对已经借阅的图书进行归还操作。
    • 读者管理
      • 读者列表:显示已经注册的读者用户。
      • 读者添加:录入用户的昵称、用户名、密码、生日、电话、邮箱等信息添加新用户。
    • 用户中心
      • 个人信息:查看、修改个人信息。
      • 用户管理:对已经添加的用户进行搜索、删除、使用权限信息进行设置。
      • 添加管理员:录入管理员的昵称、用户名、密码、生日、电话、邮箱等信息添加新管理员。
  • 06 运行截图
    • 登录界面
    • 首页
    • 图书列表界面
    • 添加图书界面
    • 图书归还界面
    • 读者列表界面
    • 个人信息界面
    • 用户管理界面
  • 07 主要代码
    • 图书管理
    • 借阅管理
  • 08 使用说明
  • 09 如何导入?
  • 10 源码下载

01 系统简述

图书管理系统就是利用计算机,结合互联网对图书进行结构化、自动化管理的一种软件,来提高对图书的管理效率。

02 系统特点

集成主流框架,简单精简化开发,高拓展性

03 技术

springboot + jpa + mybatis + springsecurity +javaex

后端:

  • 基础框架: SpringBoot
  • 简单数据操作: Spring Data Jpa
  • 复杂数据操作: Mybatis
  • 安全框架:SpringSecurity
  • 模板引擎: Thymeleaf

前端:

  • javaEx, 其实就是对html,css,js的封装。比较接近原生 修改起来比较方便
  • jQuery , 讲真的jQuery用着还是很舒服, 突破各种前端框架的限制

04 运行环境

jdk1.8 + maven3 + mysql5.7

05 功能介绍

图书管理

图书列表:显示已经上架的图书信息,可对上架图书进行搜索、修改、删除操作。
图书上架:录入图书信息,输入图书名称、作者、图书分类,页数,定价等数据进行图书录入。

借阅管理

搜索图书:根据图书名称、作者名称,图书分类等搜索图书。
借阅图书:录入图书信息,输入图书名称、作者、图书分类,页数,定价等数据进行图书借阅。
归还图书:对已经借阅的图书进行归还操作。

读者管理

读者列表:显示已经注册的读者用户。
读者添加:录入用户的昵称、用户名、密码、生日、电话、邮箱等信息添加新用户。

用户中心

个人信息:查看、修改个人信息。
用户管理:对已经添加的用户进行搜索、删除、使用权限信息进行设置。
添加管理员:录入管理员的昵称、用户名、密码、生日、电话、邮箱等信息添加新管理员。

06 运行截图

登录界面

首页

图书列表界面

添加图书界面

图书归还界面

读者列表界面

个人信息界面

用户管理界面

07 主要代码

图书管理

package com.book.manager.controller;import com.book.manager.entity.Book;
import com.book.manager.service.BookService;
import com.book.manager.util.R;
import com.book.manager.util.http.CodeEnum;
import com.book.manager.util.ro.PageIn;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;/*** @Description 用户管理*/
@Api(tags = "图书管理")
@RestController
@RequestMapping("/book")
public class BookController {@Autowiredprivate BookService bookService;@ApiOperation("图书搜索列表")@PostMapping("/list")public R getBookList(@RequestBody PageIn pageIn) {if (pageIn == null) {return R.fail(CodeEnum.PARAM_ERROR);}return R.success(CodeEnum.SUCCESS,bookService.getBookList(pageIn));}@ApiOperation("添加图书")@PostMapping("/add")public R addBook(@RequestBody Book book) {return R.success(CodeEnum.SUCCESS,bookService.addBook(book));}@ApiOperation("编辑图书")@PostMapping("/update")public R modifyBook(@RequestBody Book book) {return R.success(CodeEnum.SUCCESS,bookService.updateBook(book));}@ApiOperation("图书详情")@GetMapping("/detail")public R bookDetail(Integer id) {return R.success(CodeEnum.SUCCESS,bookService.findBookById(id));}@ApiOperation("图书详情 根据ISBN获取")@GetMapping("/detailByIsbn")public R bookDetailByIsbn(String isbn) {return R.success(CodeEnum.SUCCESS,bookService.findBookByIsbn(isbn));}@ApiOperation("删除图书")@GetMapping("/delete")public R delBook(Integer id) {bookService.deleteBook(id);return R.success(CodeEnum.SUCCESS);}}

借阅管理

package com.book.manager.controller;import cn.hutool.core.date.DateUtil;
import com.book.manager.entity.Borrow;
import com.book.manager.service.BookService;
import com.book.manager.service.BorrowService;
import com.book.manager.util.R;
import com.book.manager.util.consts.Constants;
import com.book.manager.util.http.CodeEnum;
import com.book.manager.util.ro.RetBookIn;
import com.book.manager.util.vo.BackOut;
import com.book.manager.util.vo.BookOut;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;import java.util.ArrayList;
import java.util.Date;
import java.util.List;/*** @Description 用户管理*/
@Api(tags = "借阅管理")
@RestController
@RequestMapping("/borrow")
public class BorrowController {@Autowiredprivate BorrowService borrowService;@Autowiredprivate BookService bookService;@ApiOperation("借阅列表")@GetMapping("/list")public R getBorrowList(Integer userId) {return R.success(CodeEnum.SUCCESS,borrowService.findAllBorrowByUserId(userId));}@ApiOperation("借阅图书")@PostMapping("/add")public R addBorrow(@RequestBody Borrow borrow) {Integer result = borrowService.addBorrow(borrow);if (result == Constants.BOOK_BORROWED) {return R.success(CodeEnum.BOOK_BORROWED);}else if (result == Constants.USER_SIZE_NOT_ENOUGH) {return R.success(CodeEnum.USER_NOT_ENOUGH);}else if (result == Constants.BOOK_SIZE_NOT_ENOUGH) {return R.success(CodeEnum.BOOK_NOT_ENOUGH);}return R.success(CodeEnum.SUCCESS,Constants.OK);}@ApiOperation("编辑借阅")@PostMapping("/update")public R modifyBorrow(@RequestBody Borrow borrow) {return R.success(CodeEnum.SUCCESS,borrowService.updateBorrow(borrow));}@ApiOperation("借阅详情")@GetMapping("/detail")public R borrowDetail(Integer id) {return R.success(CodeEnum.SUCCESS,borrowService.findById(id));}@ApiOperation("删除归还记录")@GetMapping("/delete")public R delBorrow(Integer id) {borrowService.deleteBorrow(id);return R.success(CodeEnum.SUCCESS);}@ApiOperation("已借阅列表")@GetMapping("/borrowed")public R borrowedList(Integer userId) {List<BackOut> outs = new ArrayList<>();if (userId!=null&&userId>0) {// 获取所有 已借阅 未归还书籍List<Borrow> borrows = borrowService.findBorrowsByUserIdAndRet(userId, Constants.NO);for (Borrow borrow : borrows) {BackOut backOut = new BackOut();BookOut out = bookService.findBookById(borrow.getBookId());BeanUtils.copyProperties(out,backOut);backOut.setBorrowTime(DateUtil.format(borrow.getCreateTime(),Constants.DATE_FORMAT));String endTimeStr = DateUtil.format(borrow.getEndTime(), Constants.DATE_FORMAT);backOut.setEndTime(endTimeStr);// 判断是否逾期String toDay = DateUtil.format(new Date(), Constants.DATE_FORMAT);int i = toDay.compareTo(endTimeStr);if (i>0) {backOut.setLate(Constants.YES_STR);}else {backOut.setLate(Constants.NO_STR);}outs.add(backOut);}}return R.success(CodeEnum.SUCCESS,outs);}@ApiOperation("归还书籍")@PostMapping("/ret")public R retBook(Integer userId, Integer bookId) {// 归还图书borrowService.retBook(userId,bookId);return R.success(CodeEnum.SUCCESS);}}

用户管理

package com.book.manager.controller;import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import com.book.manager.entity.Users;
import com.book.manager.service.UserService;
import com.book.manager.util.R;
import com.book.manager.util.consts.Constants;
import com.book.manager.util.consts.ConvertUtil;
import com.book.manager.util.http.CodeEnum;
import com.book.manager.util.vo.PageOut;
import com.book.manager.util.ro.PageIn;
import com.book.manager.util.vo.UserOut;
import com.github.pagehelper.PageInfo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.web.bind.annotation.*;import java.util.ArrayList;
import java.util.List;
import java.util.Map;/*** @Description 用户管理*/
@Api(tags = "用户管理")
@RestController
@RequestMapping("/user")
public class UsersController {@Autowiredprivate UserService userService;@ApiOperation("用户列表")@PostMapping("/list")public R getUsers(@RequestBody PageIn pageIn) {if (pageIn == null) {return R.fail(CodeEnum.PARAM_ERROR);}// 封装分页出参对象PageInfo<Users> userList = userService.getUserList(pageIn);PageOut pageOut = new PageOut();pageOut.setCurrPage(userList.getPageNum());pageOut.setPageSize(userList.getPageSize());pageOut.setTotal((int) userList.getTotal());List<UserOut> outs = new ArrayList<>();for (Users users : userList.getList()) {UserOut out = new UserOut();BeanUtils.copyProperties(users,out);out.setIdent(ConvertUtil.identStr(users.getIdentity()));out.setBirth(DateUtil.format(users.getBirthday(),Constants.DATE_FORMAT));outs.add(out);}pageOut.setList(outs);return R.success(CodeEnum.SUCCESS,pageOut);}//    @ApiOperation("添加用户")
//    @PostMapping("/add")
//    public R addUsers(@RequestBody Users users) {//        return R.success(CodeEnum.SUCCESS,userService.addUser(users));
//    }@ApiOperation("添加读者")@PostMapping("/addReader")public R addReader(@RequestBody Users users) {if (users == null) {return R.fail(CodeEnum.PARAM_ERROR);}// 读者默认是普通用户users.setIsAdmin(1);return R.success(CodeEnum.SUCCESS,userService.addUser(users));}@ApiOperation("添加管理员")@PostMapping("/addAdmin")public R addAdmin(@RequestBody Users users) {if (users == null) {return R.fail(CodeEnum.PARAM_ERROR);}// 设置管理员权限users.setIsAdmin(0);return R.success(CodeEnum.SUCCESS,userService.addUser(users));}@ApiOperation("编辑用户")@PostMapping("/update")public R modifyUsers(@RequestBody Users users) {return R.success(CodeEnum.SUCCESS,userService.updateUser(users));}@ApiOperation("用户详情")@GetMapping("/detail")public R userDetail(Integer id) {Users user = userService.findUserById(id);if (user!=null) {UserOut out = new UserOut();BeanUtils.copyProperties(user,out);out.setBirth(DateUtil.format(user.getBirthday(),Constants.DATE_FORMAT));out.setIdent(ConvertUtil.identStr(user.getIdentity()));return R.success(CodeEnum.SUCCESS,out);}return R.fail(CodeEnum.NOT_FOUND);}@ApiOperation("删除用户")@GetMapping("/delete")public R delUsers(Integer id) {userService.deleteUser(id);return R.success(CodeEnum.SUCCESS);}@ApiOperation("获取当前用户登陆信息")@GetMapping("/currUser")public R getCurrUser() {Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal();if (principal!=null) {Map<String,Object> map = BeanUtil.beanToMap(principal);String username = (String) map.get("username");if (StrUtil.isNotBlank(username)) {Users users = userService.findByUsername(username);UserOut out = new UserOut();BeanUtils.copyProperties(users,out);out.setBirth(DateUtil.format(users.getBirthday(),Constants.DATE_FORMAT));Integer identity = users.getIdentity();String ident = "";if (identity == Constants.STUDENT) {ident = Constants.STU_STR;}else if (identity == Constants.TEACHER) {ident = Constants.TEA_STR;}else if (identity == Constants.OTHER) {ident = Constants.OTHER_STR;}else if (identity == Constants.ADMIN) {ident = Constants.ADMIN_STR;}out.setIdent(ident);return R.success(CodeEnum.SUCCESS,out);}}return R.fail(CodeEnum.USER_NOT_FOUND);}
}

08 使用说明

  1. 本地搭建好java8环境,数据库MySQL5.5+;
  2. 导入sql文件至数据库中,修改数据连接(你自己库名,用户名,密码等);
  3. 导入项目,配置maven, 等待依赖下载完成;
  4. 安装IDE,打开项目;
  5. 启动访问http://localhost:8080 即可;
  6. 账号:【学生: stu/123】【教师: tea/123】【其他:other/123】【管理员:admin/123】

09 如何导入?

  • idea:直接open打开源码文件夹,记住是pom文件所在的目录
  • eclipse: 直接导入- 选择已存在导入maven项目
  • 检查maven是否配置好

10 源码下载

关注公众号【IT学长】,回复“JavaWeb 图书管理系统”免费领取。
亦可直接扫描主页二维码关注,回复“JavaWeb 图书管理系统”免费领取,点此打开个人主页

说明:此源码来源于网络,若有侵权,请联系删除!!

JavaWeb 图书管理系统相关推荐

  1. JavaWeb图书管理系统day03

    视频+资料+笔记[链接:https://pan.baidu.com/s/127I2oA8zvhTECCmC6wMSmQ   提取码:zjxs] JavaWeb图书管理系统[bookEstore文档] ...

  2. JavaWeb图书管理系统day02

    视频+资料+笔记[链接:https://pan.baidu.com/s/127I2oA8zvhTECCmC6wMSmQ   提取码:zjxs] JavaWeb图书管理系统[bookEstore文档] ...

  3. JavaWeb图书管理系统day01

    视频+资料+笔记[链接:https://pan.baidu.com/s/127I2oA8zvhTECCmC6wMSmQ   提取码:zjxs] JavaWeb图书管理系统[bookEstore文档] ...

  4. Javaweb图书管理系统t

    JavaWeb图书管理系统 一.创建数据库bookdb,导入数据库文件在这里插入代码片 SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0;-- ------- ...

  5. JavaWeb图书管理系统 图书借阅系统项目源码附带视频部署演示教程

    一.项目介绍 更新记录 2022.05.29 修复Java代码,添加过滤器未实现的方法 解决css,js样式失效,引入改为本地引入 重构项目,一个项目分两版本,一个idea版本一个eclipse版本 ...

  6. javaweb 图书管理系统完整代码_群晖 + Docker + Calibre-Web 搭建电子书管理系统

    自从有了群晖生活方便了很多,想看的书也越来越多, 给管理带来了挑战,想着有没有什么高大上一点的系统能帮我管理这些电子书籍,就像Ds Video一样,界面养眼的同时还能激发我看书的欲望. 我在百度用各种 ...

  7. JavaWeb图书管理系统

    目录 1.设计任务与目的 2.设计思路 3.概要设计 3.1系统结构图设计 3.2开发工具与运行环境 4.详细设计 4.1系统用户用例图 4.2用户登录用例图 4.3业务流程图 4.4数据流程图 4. ...

  8. JavaWeb 图书管理系统(数据库综合实验)

    <数据库系统综合实验>设计报告 分工我负责了图书管理系统中整个数据库的设计与实现,编写与整理了数据库相关方面的文档.梳理了概念设计,对于实体,实体对应的属性,各实体间的关联,E-R(实体联 ...

  9. java工作日报管理系统_GitHub - LovebuildJ/book-manager: JavaWeb图书管理系统,简单易用功能强大,可拓展性高,集成主流框架...

    book-manager 介绍 图书管理系统 请勿忽略更新日志, 会有详细的版本更新说明! 软件截图 在线API接口文档 登录 首页轮播 图书列表 图书上架 图书编辑 图书删除 图书借阅 图书检索 图 ...

  10. 基于eclipse开发软件的Javaweb图书管理系统【源代码】及部分软件

    第一步 下载JDK 1.下载网址:所需JDK网址 根据自己的操作系统选择,x86代表32位,x64代表64位.点击相应的jdk下载.(本机系统是Windows 64位的,选择.exe) 2.百度网盘下 ...

最新文章

  1. 深入探讨Java中的异常与错误处理
  2. MDK出现红叉,程序编译正常没有错误
  3. 字符串反序,逆序输出字符串
  4. 有关采用SMIv2 Internet协议的SNMPv2 MIB
  5. java 文件 字符串_java将字符串写入到txt文件中
  6. python应用html模板,Flask框架如何使用HTML模板
  7. matlab graphic,Matlab图形系统,Matlab Graphic System,音标,读音,翻译,英文例句,英语词典...
  8. Hibernate注释大全
  9. 查看linux 系统情况,LINUX 查看当前系统的负载情况
  10. 统计php代码执行情况,PHP代码执行函数总结
  11. HDU1161 Eddy's mistakes
  12. 用Windows身份验证访问数据库时,出现“用户 'YSBY-PC\ASPNET' 登录失败。”,这YSBY是我的计算机名。...
  13. 20151212Jquery 工具函数代码备份
  14. 【学习目录】支持向量机原理网络资料整理
  15. F1 Delta Time 将停止运营,玩家的奖励如何?
  16. arduino nano关于microUSB无法用的处理
  17. 学生用台灯什么光对眼睛好?开学季精选真正适合孩子的护眼台灯
  18. 正点原子开发板STM32F407ZG-基于AD7606进行八路数据采集
  19. graphpad细胞增殖曲线_应用GraphPad Prism制作生存曲线详细图文过程
  20. 嵌入式跑马灯实验报告linux,ARM嵌入式跑马灯设计实验报告.doc

热门文章

  1. matlab求零点和极点,传递函数的零点和极点.PPT
  2. web版ppt制作插件impress.js源码注释翻译
  3. php集成开发环境哪个最好,推荐几个好用的PHP集成开发环境
  4. VS2015+Access2016编写数据库程序
  5. 【老生谈算法】matlab实现K均值聚类算法——K均值聚类算法
  6. 搭建无人机仿真环境之PX4安装中出现的一些问题的解决
  7. WIFI 信道 channel
  8. CentOS 7 - Securing OpenSSH(二)
  9. 深度学习在视频动作识别应用
  10. 古体字与简体字对照表_简体字与繁体字对照表大全.pdf