作者主页:夜未央5788

简介:Java领域优质创作者、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.数据库:MySql 5.7版本;

6.是否Maven项目:是;

技术栈

1. 后端:SpringBoot

2. 前端:HTML+CSS+JavaScript+jquery+bootstrap

使用说明

1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;

2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;

若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行;

3. 将项目中application.properties配置文件中的数据库配置改为自己的配置;

4. 运行项目,输入localhost:8080/ 登录

运行截图

管理员角色

学生角色

代码相关

图书管理控制器

@Controller
@RequestMapping("/web/books")
public class BookController extends BaseController{@Autowiredprivate IBookService bookService;@Autowiredprivate IBorrowBookService borrowBookService;/*** 默认索引页* @parameter 参数及其意义* @return index页面*/@RequestMapping("/index")public String index() {return "/admin/books/index";}/*** 添加图书* @parameter * @return addform页面*/@RequestMapping(value = {"/addBook"}, method = RequestMethod.GET)public String addBook() {return "admin/books/addform";}/*** 删除图书* @parameter 图书id,数据集* @return JsonResult 是否成功*/@RequestMapping(value = "/delete/{id}", method = RequestMethod.POST)@ResponseBodypublic JsonResult delete(@PathVariable String id,ModelMap map) {try {bookService.delete(id);} catch (Exception e) {e.printStackTrace();return JsonResult.failure(e.getMessage());}return JsonResult.success();}/*** 借书* @parameter Json类型的借书表,数据集* @return JsonResult*/@RequestMapping(value = { "/borrowlist/{borrowlist}" },method = RequestMethod.POST)@ResponseBodypublic JsonResult borrowList(@PathVariable String borrowlist,ModelMap map) {if(!borrowlist.equals("undefine")){Gson gson=new Gson();BorrowList mBorrowList=gson.fromJson(borrowlist,BorrowList.class);BorrowBook[] borrowBook=new BorrowBook[mBorrowList.getBooklist().length];Book[] book=new Book[mBorrowList.getBooklist().length];int i=0;while(i<mBorrowList.getBooklist().length){borrowBook[i]=new BorrowBook();book[i]=new Book();borrowBook[i].setUserId(mBorrowList.getId());borrowBook[i].setBookId(mBorrowList.getBooklist()[i]);book[i]=bookService.findByBookId(mBorrowList.getBooklist()[i]);//一本书只能借一次,因此需要判断一下该用户是否已经借过该书BorrowBook isBorrowBook=borrowBookService.findByUserIdAndBookId(mBorrowList.getId(), mBorrowList.getBooklist()[i]);if(book[i].getCurrentInventory()>0){if(isBorrowBook==null){book[i].setCurrentInventory(book[i].getCurrentInventory()-1);bookService.saveOrUpdate(book[i]);borrowBookService.save(borrowBook[i]);}else{return JsonResult.failure("您已经借阅该书!");}}else{return JsonResult.failure("库存不足请重新选择图书!");}i++;}i=0;return JsonResult.success();}else{return JsonResult.failure("未选择要借阅的书籍!");}}/*** 还书表* @parameter 借书用户id* @return String 借书表信息和书籍信息*/@RequestMapping(value = { "/returnBookList/{id}" },method = RequestMethod.POST)@ResponseBodypublic String ReturnBookList(@PathVariable String id,ModelMap map) {BorrowBook[] borrowBooks=borrowBookService.findByUserId(Integer.parseInt(id));Book[] books=new Book[borrowBooks.length];Date date=null;for(int i=0;i<books.length;i++){books[i]=bookService.findByBookId(borrowBooks[i].getBookId());            }Map<String,Object> resultMap=new HashMap();resultMap.put("borrowBooks", borrowBooks);resultMap.put("books", books);Gson gson=new Gson();String jsonStr = gson.toJson(resultMap);  return jsonStr;}/*** 归还图书* @parameter Json类型的借书表* @return JsonResult*/@RequestMapping(value = {"/returnBook/{borrowlist}"}, method = RequestMethod.POST)@ResponseBodypublic JsonResult returnBook(@PathVariable String borrowlist) {Gson gson=new Gson();BorrowList mBorrowList=gson.fromJson(borrowlist,BorrowList.class);BorrowBook[] borrowBook=new BorrowBook[mBorrowList.getBooklist().length];Book[] book=new Book[mBorrowList.getBooklist().length];int i=0;while(i<mBorrowList.getBooklist().length){borrowBook[i]=new BorrowBook();book[i]=new Book();borrowBook[i].setUserId(mBorrowList.getId());borrowBook[i].setBookId(mBorrowList.getBooklist()[i]);book[i]=bookService.findByBookId(mBorrowList.getBooklist()[i]);book[i].setCurrentInventory(book[i].getCurrentInventory()+1);bookService.saveOrUpdate(book[i]);borrowBookService.deletByUserIdAndBookId(borrowBook[i].getUserId(), borrowBook[i].getBookId());;i++;}i=0;return JsonResult.success();}/*** 修改图书响应请求* @parameter 修改的图书id,数据集* @return String addform页面*/@RequestMapping(value = "/edit/{id}", method = RequestMethod.GET)public String edit(@PathVariable String id,ModelMap map) {Book book = bookService.findByBookId(id);map.put("book", book);return "admin/books/addform";}/*** 修改图书* @parameter 图书实体,数据集* @return JsonResult 是否修改成功*/@RequestMapping(value= {"/edit"} ,method = RequestMethod.POST)@ResponseBodypublic JsonResult edit( Book book,ModelMap map){try {bookService.saveOrUpdate(book);} catch (Exception e) {return JsonResult.failure(e.getMessage());}return JsonResult.success();}/*** index页面中BootStrapTable请求列表响应* @parameter * @return Page<Book>*/@RequestMapping(value = { "/list" })@ResponseBodypublic Page<Book> list() {SimpleSpecificationBuilder<Book> builder = new SimpleSpecificationBuilder<Book>();String searchText = request.getParameter("searchText");if(StringUtils.isNotBlank(searchText)){builder.add("bookName", Operator.likeAll.name(), searchText);}Page<Book> page = bookService.findAll(builder.generateSpecification(), getPageRequest());return page;}/*** 查询图书* @parameter * @return Page<Book>*/@RequestMapping(value = { "/findlist" })@ResponseBodypublic Page<Book> findList() {SimpleSpecificationBuilder<Book> builder = new SimpleSpecificationBuilder<Book>();String bookName = request.getParameter("inputBookName");String bookAuthor = request.getParameter("inputAuthor");String bookPress = request.getParameter("inputPublication");        if(StringUtils.isNotBlank(bookName)){builder.add("bookName", Operator.likeAll.name(), bookName);}if(StringUtils.isNotBlank(bookAuthor)){builder.add("bookAuthor", Operator.likeAll.name(), bookAuthor);}if(StringUtils.isNotBlank(bookPress)){builder.add("bookPress", Operator.likeAll.name(), bookPress);}Page<Book> page = bookService.findAll(builder.generateSpecification(), getPageRequest());return page;}}

如果也想学习本系统,下面领取。回复:067springboot

Java项目:Springboot图书馆图书借阅管理系统相关推荐

  1. Springboot图书馆图书借阅管理系统x1x74

    目    录 1 概述    1 1.1课题背景及意义    1 1.2 国内外研究现状    1 1.3 本课题主要工作    2 2 系统开发环境    3 2.1 java简介    3 2.2 ...

  2. python图书馆图书借阅管理系统django项目源码含文档ppt

    图书馆图书借阅管理系统能做到的不仅是大大简化管理员的信息管理工作,在提高图书馆管理效率的同时还能缩减开支,更能在数字化的平面网络上将图书馆管理最好的一面展示给客户和潜在客户,而这个系统在带给图书馆管理 ...

  3. 基于Spring boot的图书馆图书借阅管理系统的设计与实现

    作者主页:编程千纸鹤 作者简介:Java.前端.Python开发多年,做过高程,项目经理,架构师 主要内容:Java项目开发.毕业设计开发.面试技术整理.最新技术分享 收藏点赞不迷路  关注作者有好处 ...

  4. 大学图书馆图书借阅管理系统

    技术:Java.JSP等 摘要:随着科技进步以及计算机行业的迅猛发展,知识以及书籍的储备和生活节奏加快,方便的管理和快捷的阅读已成为大势所趋,以国内外各个大学所用的图书管理系统为例,针对当今社会图书信 ...

  5. java项目springboot医院固定资产检修管理系统

    功能介绍 主要对主页.个人中心.员工管理.供应商管理.设备类型管理.仪器设备管理.设备采购管理.设备入库管理.设备申请管理.检修信息管理的实现. springboot是spring家族中的一个全新框架 ...

  6. 基于springboot的图书借阅管理系统

    主要技术栈SpringBoot+IDEA+SSM+MYSQL+Maven+Mysql 原始需求: 整个系统可以分为两部分:前端展示及后台管理. 该系统前端展示包括: 用户登录注册: 首页显示搜索图书. ...

  7. Java+MySQL基于ssm的图书馆图书借阅管理系统

    本文介绍了图书馆管理设计方案,该网站采用目前JSP中最流行的SSM框架和Eclipse编辑器.MySQL数据库设计并实现的.网站功能包含系统用户管理.图书管理.用户管理.借书管理.续借管理.违章缴款管 ...

  8. Java项目:自习室图书馆座位预约管理系统(java+SSM+JSP+easyUI+mysql)

    源码获取:俺的博客首页 "资源" 里下载! 项目介绍 一款由jsp+ssm+mysql实现的图书馆预约占座管理系统,前端采用的是当下最流行的easyui框架,后台用的ssm(spr ...

  9. springboot uniapp图书借阅管理系统源码

    开发环境及工具: 大等于jdk1.8,大于mysql5.5,nodejs,idea(eclipse),HBuilder,vscode(webstorm) 技术说明: springboot mybati ...

  10. 基于Java+Spring+Html的图书借阅管理系统详细设计和实现

    博主介绍:✌全网粉丝20W+,csdn特邀作者.博客专家.CSDN新星计划导师.java领域优质创作者,博客之星.掘金/华为云/阿里云/InfoQ等平台优质作者.专注于Java技术领域和毕业项目实战✌

最新文章

  1. shell测试命令test、[ ]、[[ ]]
  2. git仓库迁移(全部分支)
  3. python进程和线程中的两个锁
  4. 我心目中的牛程序员、我们可以对比看看(人家还是看多年朋友面子上才肯帮忙1周,至少需支付1万元辛苦费)...
  5. idea连接不了5.6mysql_IDEA无法连接mysql数据库的6种解决方法大全
  6. Unity手游iOS内存分析和测试
  7. Dropbox 的崛起之路,创始人曾拒绝乔布斯天价收购
  8. c语言getchar在哪个头文件_c语言入门(一)
  9. 服务器2003系统U盘安装方法,u盘winpe下安装windows server 2003详细教程
  10. 中的枚举属性函数_对于 JavaScript 中循环之间的技术差异分析
  11. eclipse配置文件
  12. html 360登录自动填写,汇总:如何在360浏览器中删除自动填写的表单?
  13. delphi cxgrid读取本地image_读取多个(海康\大华)网络摄像头的视频流 (使用opencv-python),解决实时读取延迟问题...
  14. 史上最详细的PID教程——理解PID原理及优化算法
  15. 那些测绘工作中让你事半功倍的小工具软件,我不推荐你轻易安装
  16. php截取部分pdf,如何将一个pdf文档拆分成多个
  17. 软件测试面试题全网独家没有之一的资深测试工程师面试题集锦
  18. ctfshow node.js专题
  19. 图灵机器人SDK接入指南
  20. codevs 2977 二叉堆练习1x

热门文章

  1. 将安卓手机摄像头打造成电脑高清摄像头
  2. 联想开机按f2怎么修复系统图解_联想笔记本开机f2修复电脑步骤 - 卡饭网
  3. matlab中生成瑞利信道的两种方法
  4. Cisco Packet Tracer思科模拟器中OSPF动态路由配置
  5. 最强整理!Android攒了一个月的面试题及解答,震撼来袭免费下载!
  6. winpe加载raid_在winpe里添加raid驱动
  7. 基于Go的马蜂窝旅游网分布式IM系统技术实践
  8. 搜索系统硬盘中包含指定字符串的文件的工具和方法——全文搜索、搜索文件内容(持续更新中)
  9. Linux安装微信、QQ
  10. 解构淘宝SPM/SCM流量跟踪体系