Java毕业设计项目实战篇|Java项目:图书管理系统(java+SpringBoot+jpa+html+swagger+maven+mysql)

源码获取:博客首页 "资源" 里下载!
项目介绍
该项目比较界面简单大方,功能简洁,只有三张表,适合java初学者或者课程设计;
主要功能包括:
首页轮播图
图书管理:图书列表、图书上架;
借阅管理:搜索图书、借阅图书、归还图书;
读者管理:读者列表、读者添加;
用户中心:个人信息、用户管理、添加管理员;
环境需要
1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可
4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;
5.是否Maven项目: 是;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven项目
6.数据库:MySql 5.7版本;
技术栈
1. 后端:springboot+jpa+mybatis+springsecurity+swagger+
2. 前端:html+javaex
使用说明
1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
2.将book-manager导入到开发工具中(idea/eclipse)均可
- idea:直接open打开源码文件夹,记住是pom文件所在的目录
- eclipse: 直接导入- 选择已存在导入maven项目
- 检查maven是否配置好,建议使用阿里云加速,这样等待时间比较短
3. 将项目中application.yml配置文件中的数据库配置改为自己的配置;
4. 运行项目,输入localhost:8080 登录
5. 管理员用户名:admin 密码:123
Java毕业设计项目实战篇|Java项目:图书管理系统(java+SpringBoot+jpa+html+swagger+maven+mysql)
文章图片

Java毕业设计项目实战篇|Java项目:图书管理系统(java+SpringBoot+jpa+html+swagger+maven+mysql)
文章图片

Java毕业设计项目实战篇|Java项目:图书管理系统(java+SpringBoot+jpa+html+swagger+maven+mysql)
文章图片

Java毕业设计项目实战篇|Java项目:图书管理系统(java+SpringBoot+jpa+html+swagger+maven+mysql)
文章图片

Java毕业设计项目实战篇|Java项目:图书管理系统(java+SpringBoot+jpa+html+swagger+maven+mysql)
文章图片

【Java毕业设计项目实战篇|Java项目:图书管理系统(java+SpringBoot+jpa+html+swagger+maven+mysql)】
图书类别处理控制层:
/** * @description: 图书类别处理 */ @Controller @RequestMapping("/admin/ch/category") public class CategoryController { //注入 @Autowired private LibraryCategoryService libraryCategoryService; /** * 添加 图书类目 * * @param category 图书类目信息 * @param session添加人 * @return url * @author hiseico */ @RequestMapping(value = "https://www.it610.com/addCategory", method = RequestMethod.POST) public String addCategory(TbCategory category, HttpSession session, Model model) { List categoryList = libraryCategoryService.getCategoryAll(); boolean is = false; for (TbCategory tbCategory : categoryList) { if (category.getCatname().equals(tbCategory.getCatname())) { is = true; break; } } if (!is) { // 添加 数据到 数据库,并 修改 父类目 libraryCategoryService.addBookCategory(category, session); } else { model.addAttribute("errorMsg", "类目已经存在"); return "errorMsg"; } return "redirect:/admin/ch/loan_BookClassify.action"; }/** * 删除类目信息 * * @param id * @return */ @RequestMapping(value = "https://www.it610.com/delCategory", method = RequestMethod.GET) public String delCategory(int id) {// 通过 类目id 删除数据 libraryCategoryService.delBookCategoryById(id); return "redirect:/admin/ch/loan_BookClassify.action"; }/** * 修改 类目关系 * * @param category * @return */ @RequestMapping(value = "https://www.it610.com/updateCategory", method = RequestMethod.POST) public String updateCategory(TbCategory category) {return "redirect:/admin/ch/loan_BookClassify.action"; }@RequestMapping("/toUpdatePage") @ResponseBody public TbCategory toUpdatePage(int id) { return libraryCategoryService.getCategoryById(id); } }

图书操作控制层:
/** * @description: 图书操作 */ @Controller @RequestMapping("/admin/ch") public class LibraryController { //注入 @Autowired private LibraryService libraryService; /** * 修改图书信息 * * @param uploadFile 上传图片 * @param library图书信息 * @return */ @RequestMapping(value = "https://www.it610.com/updateBook", method = RequestMethod.POST) public String updateBook(MultipartFile uploadFile, TbLibrary library, HttpServletRequest request) { try { libraryService.updateOrSaveLibrary(uploadFile, library,request); } catch (IOException e) { e.printStackTrace(); } return "redirect:/admin/ch/loan_bookList.action"; }/** * 添加图书 * * @param uploadFile 上传图片 * @param library图书信息 * @return */ @RequestMapping(value = "https://www.it610.com/addBook", method = RequestMethod.POST) public String addBook(MultipartFile uploadFile, TbLibrary library, HttpSession session,HttpServletRequest request) { ActiveAdmin activeAdmin = (ActiveAdmin) session.getAttribute("activeAdmin"); library.setManagerId(activeAdmin.getUserid()); try { libraryService.updateOrSaveLibrary(uploadFile, library,request); } catch (IOException e) { e.printStackTrace(); } return "redirect:/admin/ch/loan_bookList.action"; }/** * 根据 图书id删除 图书 * * @param id 图书id * @return */ @RequestMapping("/delBookById") public String delBook(int id) { libraryService.delBookById(id); return "redirect:/admin/ch/loan_bookList.action"; }}

前台页面列表显示处理:
/** * @description: 前台页面列表显示处理 */@Controller @RequestMapping("/user/ch") public class UserBookController { // 注入 @Autowired private LibraryService libraryService; @Autowired private LibraryCategoryService libraryCategoryService; @Autowired private CommentService commentService; @Autowired private TbOrderMapper orderMapper; @Autowired private TbRecordMapper recordMapper; @Value("${LOGIN_USER}") private String LOGIN_USER; // 当前登录用户的 session 存储 属性名@RequestMapping("/user_bookList") public String toLibraryListByCid(TbLibraryQuery libraryQuery, PageCount pageCount, Model model, HttpSession session) { if (libraryQuery == null || libraryQuery.getCateId() == null) { libraryQuery = new TbLibraryQuery(); libraryQuery.setCateId((Integer) session.getAttribute("currentCategory")); } // 根据 类目 id // 若 当前 类目 为 父类目 则获取 其 下面 的 所有子类目 // 若 当前 类目 为 子类目 则获取 其 同级 类目 List categoryList = libraryCategoryService.getCategoryByCid(libraryQuery.getCateId()); // 获取当前类目信息 TbCategory currentCategory = libraryCategoryService.getCategoryById(libraryQuery.getCateId()); // 按照条件进行查询 PageCount libraryPageCount = libraryService.findLibraryByAll(libraryQuery, pageCount); // model 将数据设置到域中 model.addAttribute("subCategoryList", categoryList); model.addAttribute("libraryPageCount", libraryPageCount); // 默认 if (currentCategory == null) { currentCategory = new TbCategory(); currentCategory.setId(0); } session.setAttribute("currentCategory", currentCategory.getId()); return "/user/user_bookList"; }/** * 通过 图书 id 查询 图书详细信息 * * @param id * @return */ @RequestMapping("/bookId") public String toBookInfo(int id, Model model) { BookExt bookInfo = libraryService.getBookInfoById(id); // 将 时间戳 进行转换 Long dateSS = bookInfo.getLibrary().getCreatedate(); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); String formatDate = simpleDateFormat.format(new Date(dateSS * 1000)); bookInfo.setFormatDate(formatDate); // 通过 图书id 获取 回复信息 List commentExts = commentService.findCommentByBookId(id); // 将 查询的 图书信息 设置到 域 中 model.addAttribute("bookInfo", bookInfo); // 将 回复信息 设置到 域 汇总 model.addAttribute("commentExts", commentExts); return "/user/bookDetail"; }/** * 用于 借阅 图书操作 * * @param session 用于 取 用户信息 * @param order用户借阅关联信息 * @return */ @RequestMapping("/jieyue_book") public String jieyueBook(HttpSession session, Model model, String oid, String kkid, TbOrder order) {if (null != kkid) { TbRecord tbRecord = recordMapper.selectByPrimaryKey(Integer.valueOf(kkid)); tbRecord.setReturnbook(2); //2代表挂失 recordMapper.updateByPrimaryKey(tbRecord); model.addAttribute("successMsg", "图书挂失成功"); return "errorMsg"; }if (null != oid) { TbRecord tbOrder = recordMapper.selectByPrimaryKey(Integer.valueOf(oid)); // 插入数据 tbOrder.setBackdate(tbOrder.getBackdate() + 3 * 30 * 24 * 60 * 60); recordMapper.updateByPrimaryKey(tbOrder); model.addAttribute("successMsg", "续借三个月成功"); return "errorMsg"; } // 获取 session 中的用户信息 ActiveUser activeUser = (ActiveUser) session.getAttribute("activeUser"); TbUser tbUser = new TbUser(); tbUser.setId(activeUser.getUserid()); order.setUserId(tbUser.getId()); // 插入数据 libraryService.jieyueBookById(order); return "redirect:/user/ch/bookId.action?id=" + order.getBookId(); }@RequestMapping("/commitInfo") @ResponseBody public String commitComment(HttpSession session, TbComment comment) { // 获取 session 中的用户信息 ActiveUser activeUser = (ActiveUser) session.getAttribute("activeUser"); TbUser tbUser = new TbUser(); tbUser.setId(activeUser.getUserid()); comment.setUserId(tbUser.getId()); libraryService.addCommentInfo(comment); return "ok"; } }

源码获取:博客首页 "资源" 里下载!

    推荐阅读