基于 Java(SpringBoot)+MySQL 开发(Web)图书管理系统【100011163】 您所在的位置:网站首页 java图书管理系统毕业论文 基于 Java(SpringBoot)+MySQL 开发(Web)图书管理系统【100011163】

基于 Java(SpringBoot)+MySQL 开发(Web)图书管理系统【100011163】

2023-06-25 22:30| 来源: 网络整理| 查看: 265

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 { @Autowired private 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 { @Autowired private BorrowService borrowService; @Autowired private 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 outs = new ArrayList(); if (userId!=null&&userId>0) { // 获取所有 已借阅 未归还书籍 List 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 { @Autowired private UserService userService; @ApiOperation("用户列表") @PostMapping("/list") public R getUsers(@RequestBody PageIn pageIn) { if (pageIn == null) { return R.fail(CodeEnum.PARAM_ERROR); } // 封装分页出参对象 PageInfo userList = userService.getUserList(pageIn); PageOut pageOut = new PageOut(); pageOut.setCurrPage(userList.getPageNum()); pageOut.setPageSize(userList.getPageSize()); pageOut.setTotal((int) userList.getTotal()); List 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 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 使用说明 本地搭建好 java8 环境,数据库 MySQL5.5+;导入 SQL 文件至数据库中,修改数据连接(你自己库名,用户名,密码等);导入项目,配置 maven, 等待依赖下载完成;安装 IDE,打开项目;启动访问 http://localhost:8080 即可;账号:【学生: stu/123】【教师: tea/123】【其他:other/123】【管理员:admin/123】 09 如何导入? idea:直接 open 打开源码文件夹,记住是 pom 文件所在的目录eclipse: 直接导入- 选择已存在导入 maven 项目检查 maven 是否配置好 ♻️ 资源

在这里插入图片描述

大小: 46.9MB ➡️ 资源下载:https://download.csdn.net/download/s1t16/87541851 注:如当前文章或代码侵犯了您的权益,请私信作者删除!



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有