图书借阅管理系统

张开发
2026/4/6 21:13:54 15 分钟阅读

分享文章

图书借阅管理系统
文章目录图书借阅管理系统一、项目演示二、项目介绍三、万字文档参考四、系统部分功能截图五、部分代码展示六、底部获取项目和万字文档图书借阅管理系统一、项目演示图书借阅管理系统二、项目介绍基于Springbootvue的前后端分离图书借阅管理系统开发语言java运行环境:idea或eclipse vscode 数据库:mysql技术JAVA、 SpringBoot、MyBatis、MySQL、 Vue本图书借阅管理系统的功能主要是后端管理系统角色就分为普通用户和管理员两大角色主要功能包括图书信息管理、图书类别管理、借阅信息管理、用户管理、修改密码、用户借书、用户还书。三、万字文档参考四、系统部分功能截图五、部分代码展示packagecom.rabbiter.bms.web;importcom.rabbiter.bms.service.BookInfoService;importcom.rabbiter.bms.utils.MyResult;importcom.rabbiter.bms.utils.MyUtils;importcom.rabbiter.bms.model.BookInfo;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.web.bind.annotation.*;importjava.util.List;importjava.util.Map;RestControllerRequestMapping(value/bookInfo)publicclassBookInfoController{AutowiredBookInfoServicebookInfoService;// 获取图书数量GetMapping(value/getCount)publicIntegergetCount(){returnbookInfoService.getCount();}// 查询所有图书信息GetMapping(value/queryBookInfos)publicListBookInfoqueryBookInfos(){returnbookInfoService.queryBookInfos();}// 分页搜索查询图书信息 params: {page, limit, bookname, bookauthor, booktypeid}GetMapping(value/queryBookInfosByPage)publicMapString,ObjectqueryBookInfosByPage(RequestParamMapString,Objectparams){MyUtils.parsePageParams(params);intcountbookInfoService.getSearchCount(params);// 获得总数ListBookInfobookInfosbookInfoService.searchBookInfosByPage(params);// 分页查询returnMyResult.getListResultMap(0,success,count,bookInfos);}// 添加图书信息PostMapping(value/addBookInfo)publicIntegeraddBookInfo(RequestBodyBookInfobookInfo){returnbookInfoService.addBookInfo(bookInfo);}// 删除图书信息DeleteMapping(value/deleteBookInfo)publicIntegerdeleteBookInfo(RequestBodyBookInfobookInfo){returnbookInfoService.deleteBookInfo(bookInfo);}// 删除一些图书信息DeleteMapping(value/deleteBookInfos)publicIntegerdeleteBookInfos(RequestBodyListBookInfobookInfos){returnbookInfoService.deleteBookInfos(bookInfos);}// 更新图书信息PutMapping(value/updateBookInfo)publicIntegerupdateBookInfo(RequestBodyBookInfobookInfo){returnbookInfoService.updateBookInfo(bookInfo);}}packagecom.rabbiter.bms.web;importcom.rabbiter.bms.exception.NotEnoughException;importcom.rabbiter.bms.exception.OperationFailureException;importcom.rabbiter.bms.model.Borrow;importcom.rabbiter.bms.service.BookInfoService;importcom.rabbiter.bms.service.BorrowService;importcom.rabbiter.bms.utils.MyResult;importcom.rabbiter.bms.utils.MyUtils;importcom.rabbiter.bms.model.BookInfo;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.transaction.annotation.Transactional;importorg.springframework.transaction.interceptor.TransactionAspectSupport;importorg.springframework.web.bind.annotation.RequestBody;importorg.springframework.web.bind.annotation.RequestMapping;importorg.springframework.web.bind.annotation.RequestParam;importorg.springframework.web.bind.annotation.RestController;importjava.util.Date;importjava.util.List;importjava.util.Map;RestControllerRequestMapping(value/borrow)publicclassBorrowController{AutowiredBorrowServiceborrowService;AutowiredBookInfoServicebookInfoService;// 分页查询借阅 params: {page, limit, userid, bookid}RequestMapping(value/queryBorrowsByPage)publicMapString,ObjectqueryBorrowsByPage(RequestParamMapString,Objectparams){MyUtils.parsePageParams(params);intcountborrowService.getSearchCount(params);ListBorrowborrowsborrowService.searchBorrowsByPage(params);returnMyResult.getListResultMap(0,success,count,borrows);}// 添加借阅RequestMapping(value/addBorrow)publicIntegeraddBorrow(RequestBodyBorrowborrow){returnborrowService.addBorrow(borrow);}// 获得数量RequestMapping(value/getCount)publicIntegergetCount(){returnborrowService.getCount();}// 删除借阅RequestMapping(value/deleteBorrow)publicIntegerdeleteBorrow(RequestBodyBorrowborrow){returnborrowService.deleteBorrow(borrow);}// 删除一些借阅RequestMapping(value/deleteBorrows)publicIntegerdeleteBorrows(RequestBodyListBorrowborrows){returnborrowService.deleteBorrows(borrows);}// 更新借阅RequestMapping(value/updateBorrow)publicIntegerupdateBorrow(RequestBodyBorrowborrow){returnborrowService.updateBorrow(borrow);}// 借书RequestMapping(value{/borrowBook,/reader/borrowBook})TransactionalpublicIntegerborrowBook(Integeruserid,Integerbookid){try{// 查询该书的情况BookInfotheBookbookInfoService.queryBookInfoById(bookid);if(theBooknull){// 图书不存在thrownewNullPointerException(图书bookid不存在);}elseif(theBook.getIsborrowed()1){// 已经被借thrownewNotEnoughException(图书bookid库存不足已经被借走);}// 更新图书表的isBorrowedBookInfobookInfonewBookInfo();bookInfo.setBookid(bookid);bookInfo.setIsborrowed((byte)1);Integerres2bookInfoService.updateBookInfo(bookInfo);if(res20)thrownewOperationFailureException(图书bookid更新被借信息失败);// 添加一条记录到borrow表BorrowborrownewBorrow();borrow.setUserid(userid);borrow.setBookid(bookid);borrow.setBorrowtime(newDate(System.currentTimeMillis()));Integerres1borrowService.addBorrow2(borrow);if(res10)thrownewOperationFailureException(图书bookid添加借阅记录失败);}catch(Exceptione){System.out.println(发生异常进行手动回滚);TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();e.printStackTrace();return0;}return1;}// 还书RequestMapping(value{/returnBook,/reader/returnBook})TransactionalpublicIntegerreturnBook(Integerborrowid,Integerbookid){try{// 查询该书的情况BookInfotheBookbookInfoService.queryBookInfoById(bookid);// 查询借书的情况BorrowtheBorrowborrowService.queryBorrowsById(borrowid);if(theBooknull){// 图书不存在thrownewNullPointerException(图书bookid不存在);}elseif(theBorrownull){//结束记录不存在thrownewNullPointerException(借书记录bookid不存在);}elseif(theBorrow.getReturntime()!null){// 已经还过书thrownewNotEnoughException(图书bookid已经还过了);}// 更新图书表的isBorrowedBookInfobookInfonewBookInfo();bookInfo.setBookid(bookid);bookInfo.setIsborrowed((byte)0);Integerres2bookInfoService.updateBookInfo(bookInfo);if(res20)thrownewOperationFailureException(图书bookid更新被借信息失败);// 更新Borrow表更新结束时间BorrowborrownewBorrow();borrow.setBorrowid(borrowid);borrow.setReturntime(newDate(System.currentTimeMillis()));Integerres1borrowService.updateBorrow2(borrow);if(res10)thrownewOperationFailureException(图书bookid更新借阅记录失败);}catch(Exceptione){System.out.println(发生异常进行手动回滚);TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();e.printStackTrace();return0;}return1;}}六、底部获取项目和万字文档有问题或者需要协助调试运行项目的也可以

更多文章