基于javaweb+mysql的图书借阅管理系统(前台、后台)

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

前台:登录、查看图书列表、借书、还书、导出借书信息

后台:图书管理、借阅审核、还书审核、用户管理、图书类别管理、借书数据统计图、导出图书信息

前台

后台:

技术框架

JSP Servlet MySQL JDBC Tomcat CSS JavaScript


                Book book = bookService.findBookById(Integer.parseInt(bookIdStr));reader = (Reader) session.getAttribute("reader");Borrow borrow = new Borrow();borrow.setReader(reader);borrow.setBook(book);borrow.setBookAdmin(null);Date date = new Date();borrow.setBorrowtime(DateUtils.dateToString(date));borrow.setReturntime(null);borrow.setState(0);readerService.addBorrow(borrow);resp.sendRedirect(req.getContextPath()+"/reader/reader.jsp");break;//读者归还图书操作case "return":
            borrow = queryRunner.query(connection,sql,new BeanHandler<>(Borrow.class),bookId,readerId,state);if (borrow != null){Book book = queryRunner.query(connection,"select * from book where id = ?",new BeanHandler<>(Book.class),bookId);Reader reader = queryRunner.query(connection,"select * from reader where id = ?",new BeanHandler<>(Reader.class),readerId);bAdmins = queryRunner.query(connection,"select adminid from borrow where id = ?",new ColumnListHandler<Integer>(),borrow.getId());bookAdmin = queryRunner.query(connection,"select * from bookadmin where id = ?",new BeanHandler<>(BookAdmin.class),bAdmins.get(0));borrow.setBookAdmin(bookAdmin);borrow.setBook(book);borrow.setReader(reader);}} catch (Exception e) {e.printStackTrace();} finally {JDBCUtils.release(connection,null,null);}
    public void addBook(Book book) {this.bookRepository.save(book);}@Overridepublic void modifyBook(Book book) {this.bookRepository.update(book);}@Overridepublic void deleteBookById(int bookId) {this.bookRepository.deleteById(bookId);}@Overridepublic HSSFWorkbook findWorkBook() {HSSFWorkbook hssfWorkbook = new HSSFWorkbook();HSSFSheet sheet = hssfWorkbook.createSheet("图书信息表");Row row = sheet.createRow(0);Cell cell = row.createCell(0);cell.setCellValue("图书名称");
                <div class="layui-input-block"><input type="text" name="name" value="${requestScope.book.name}" lay-verify-="" autocomplete="off" placeholder="请输入" class="layui-input"></div></div><div class="layui-form-item"><label class="layui-form-label">作者</label><div class="layui-input-block"><input type="text" name="author" value="${requestScope.book.author}" lay-verify-="" autocomplete="off" placeholder="请输入" class="layui-input"></div></div><div class="layui-form-item"><label class="layui-form-label">出版社</label><div class="layui-input-block"><input type="text" name="publish" value="${requestScope.book.publish}" lay-verify-="" autocomplete="off" placeholder="请输入" class="layui-input"></div></div><div class="layui-form-item"><label class="layui-form-label">页码</label><div class="layui-input-block"><input type="text" name="pages" value="${requestScope.book.pages}" lay-verify-="" autocomplete="off" placeholder="请输入" class="layui-input">
        } catch (Exception e) {e.printStackTrace();} finally {JDBCUtils.release(connection,null,null);}return readerList;}@Overridepublic int selectReaderCount() {connection = JDBCUtils.getConnection();sql = "select count(*) from reader";return PubUtils.getCount(queryRunner,connection,sql,0);}@Overridepublic Reader selectReaderById(int readerId) {connection = JDBCUtils.getConnection();sql = "select * from reader where id = ?";Reader reader = null;try {reader = queryRunner.query(connection,sql,new BeanHandler<>(Reader.class),readerId);} catch (Exception e) {e.printStackTrace();
import com.demo.utils.PubUtils;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import org.apache.commons.dbutils.handlers.ColumnListHandler;import java.sql.Connection;
import java.util.ArrayList;
import java.util.List;/*** @ClassName:BookRepositoryImpl* @Description:图书数据访问接口实现类* @version:1.0*/
public class BookRepositoryImpl implements BookRepository {private Connection connection = null;private QueryRunner queryRunner = new QueryRunner();private String sql = null;@Overridepublic void save(Book book) {connection = JDBCUtils.getConnection();sql = "insert into book(name,pages,price,publish,author,bookcaseid,abled) values(?,?,?,?,?,?,?)";
                            //当Content-Type 的类型为要下载的类型时 , 这个信息头会告诉浏览器这个文件的名字和类型。resp.setHeader("Content-Disposition", "attachment;filename*=utf-8'zh_cn'" + fileName + suffix);outputStream = resp.getOutputStream();hssfWorkbook.write(outputStream);outputStream.close();break;}case "bookCase":switch (type) {case "find":String pageStr = req.getParameter("page");String limitStr = req.getParameter("limit");List<BookCase> bookCaseList = bookAdminService.findAllBookCaseByPage(Integer.parseInt(pageStr), Integer.parseInt(limitStr));int count = bookAdminService.findAllCount();BookCaseVO bookCaseVO = new BookCaseVO();bookCaseVO.setCode(0);bookCaseVO.setMsg(null);bookCaseVO.setCount(count);bookCaseVO.setData(bookCaseList);jsonObject = JSONObject.fromObject(bookCaseVO);resp.getWriter().write(jsonObject.toString());break;case "add":bookCaseName = req.getParameter("name");
            resp.getWriter().write(jsonObject.toString());} else switch (method) {//查询所有读者信息case "findAll":List<Reader> readerList;Constants.pageStr = req.getParameter("page");Constants.limitStr = req.getParameter("limit");readerList = readerService.findAllReaders(Integer.parseInt(Constants.pageStr), Integer.parseInt(Constants.limitStr));count = readerService.findReadersCount();ReaderVO readerVO = new ReaderVO();readerVO.setCode(0);readerVO.setCount(count);readerVO.setData(readerList);readerVO.setMsg(null);JSONObject jsonObject = JSONObject.fromObject(readerVO);resp.getWriter().write(jsonObject.toString());break;//编辑读者信息case "preEdit":Constants.readerId = req.getParameter("readerId");reader = readerService.findReaderById(Integer.parseInt(Constants.readerId));req.setAttribute("reader", reader);req.getRequestDispatcher("/reader/reader-edit.jsp").forward(req, resp);break;
    @Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {String method = req.getParameter("method");BookService bookService = new BookServiceImpl();BookAdminService bookAdminService = new BookAdminServiceImpl();Book book;String bookIdStr;List<BookCase> bookCaseList;String name;String author;String publish;String pageStr;String priceStr;String bookCaseId;BookCase bookCase;//查询图书if (method == null){resp.setCharacterEncoding("utf-8");pageStr = req.getParameter("page");String limitStr = req.getParameter("limit");List<Book> bookList = bookService.findAllBooks(Integer.valueOf(pageStr),Integer.valueOf(limitStr));BookVO bookVO = new BookVO();bookVO.setCode(0);bookVO.setMsg(null);bookVO.setCount(bookService.findBookCount());bookVO.setData(bookList);JSONObject jsonObject = JSONObject.fromObject(bookVO);
        if (method == null){resp.setCharacterEncoding("utf-8");pageStr = req.getParameter("page");String limitStr = req.getParameter("limit");List<Book> bookList = bookService.findAllBooks(Integer.valueOf(pageStr),Integer.valueOf(limitStr));BookVO bookVO = new BookVO();bookVO.setCode(0);bookVO.setMsg(null);bookVO.setCount(bookService.findBookCount());bookVO.setData(bookList);JSONObject jsonObject = JSONObject.fromObject(bookVO);System.out.println("jsonObject.toString():"+jsonObject.toString());resp.getWriter().write(jsonObject.toString());} else {switch (method) {//编辑图书case "preEdit":bookIdStr = req.getParameter("bookId");book = bookService.findBookById(Integer.valueOf(bookIdStr));req.setAttribute("book",book);bookCaseList = bookAdminService.findAllBookCase();
                $("iframe").attr("src","admin/bookcase-add.jsp");});})</script>
</head><body class="layui-layout-body">
<div class="layui-layout layui-layout-admin"><!-- 顶部菜单开始 --><div class="layui-header"><div class="layui-logo">Library后台管理系统</div><!-- 头部区域(可配合layui已有的水平导航) --><ul class="layui-nav layui-layout-left"><li class="layui-nav-item layui-this"><a href="javascript:;">控制台</a></li>
        String userAgent = req.getHeader("User-Agent");//根据方法名称判断if (method != null) {switch (method) {case "findAll"://根据类型判断  borrow为借阅操作   return为还书操作switch (type) {case "borrow":List<Borrow> borrowList = readerService.findAllBorrows();int count = readerService.findBorrowsNum();BorrowVO borrowVO = new BorrowVO();borrowVO.setData(borrowList);borrowVO.setCount(count);borrowVO.setCode(0);borrowVO.setMsg(null);
});
</script>
</body>
</html>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head><title>图书编辑页面</title><link rel="stylesheet" href="../layui/css/layui.css"><link rel="stylesheet" href="../css/book.css"><script type="text/javascript" src="../layui/layui.js"></script><style>body {background: url("../images/bg-3.jpg") no-repeat;background-size: cover;}</style>
</head>
<body>
<div class="layui-container-form-box" style="width: 500px;background-color: #cccccc"><fieldset class="layui-elem-field layui-field-title" style="margin-top: 20px;"><legend>读者信息编辑</legend>
        function show() {index = index + 1;if (index <= number - 1) {change(index);} else {index = 0;change(index);}}t = setInterval(show, 8000);//根据窗口宽度生成图片宽度var width = $(window).width();$(".screenbg ul img").css("width", width + "px");});
</script>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page isELIgnored="false" %>
<html>
<head><title></title>
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import org.apache.commons.dbutils.handlers.ColumnListHandler;
import org.apache.commons.dbutils.handlers.ScalarHandler;import java.sql.Connection;
import java.util.ArrayList;
import java.util.List;public class BookAdminRepositoryImpl implements BookAdminRepository {private Connection connection = null;private QueryRunner queryRunner = new QueryRunner();private BookRepository bookRepository = new BookRepositoryImpl();private ReaderRepository readerRepository = new ReaderRepositoryImpl();private String sql = null;












基于javaweb+mysql的图书借阅管理系统(前台、后台)相关推荐

  1. 基于javaweb+mysql的健身房健身俱乐部管理系统(前台、后台)

    基于javaweb+mysql的健身房健身俱乐部管理系统(前台.后台) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/myeclipse/sts等均 ...

  2. 基于微信小程序图书借阅管理系统(微信小程序毕业设计)

    基于微信小程序图书借阅管理系统 图书借阅管理系统用户端是基于微信小程序,管理员端是基于java编程语言,mysql数据库,ssm框架,idea工具开发,本系统是分为用户和管理员两个角色,其中用户的主要 ...

  3. Springboot+Mysql实现图书借阅管理系统及教务信息管理系统源码附带运行视频

    基于springboot脚手架的图书借阅管理系统,主要实现了图书馆图书借阅管理的基本功能,除基础脚手架外,实现的功能有:学院管理.班级管理.学生管理.图书管理.图书分类管理.借阅管理.违规管理.借阅统 ...

  4. 基于SSM的高校图书借阅管理系统

    末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用JSP技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件 ...

  5. 基于javaweb+mysql的个人日记管理系统

    基于javaweb+mysql的个人日记管理系统 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/myeclipse/sts等均可配置运行 适用 课程 ...

  6. 基于javaweb+mysql的甜品蛋糕店(前台、后台)

    基于javaweb+mysql的甜品蛋糕店(前台.后台) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/myeclipse/sts等均可配置运行 适 ...

  7. 基于javaweb+mysql的维修报修管理系统(管理员、维修人员、普通用户)

    基于javaweb+mysql的维修报修管理系统(管理员.维修人员.普通用户) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/myeclipse/s ...

  8. 基于javaweb+mysql的教务选课管理系统(管理员、教师、学生)

    基于javaweb+mysql的教务选课管理系统(管理员.教师.学生) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/myeclipse/sts等均 ...

  9. 基于javaweb+mysql的大学生实习管理系统(java+springboot+thymeleaf+html+jquery+bootstrap)

    基于javaweb+mysql的大学生实习管理系统(java+springboot+thymeleaf+html+jquery+bootstrap) 运行环境 Java≥8.MySQL≥5.7 开发工 ...

最新文章

  1. js 关于运算顺序的问题
  2. 头像裁剪上传_微信新功能:11月微信新玩法!给微信换上“皇冠头像”,还能加姓氏?...
  3. wxWidgets 示例演示 wxWizard 控件
  4. 创建下标为1-10的整形数组
  5. python until怎么用_python基础之从认识python到python的使用
  6. AI算法连载12:统计之梯度提升树
  7. VUE的导入(HelloWord)
  8. mysql在同一台机器上实现主从_MySQL 5.7主从搭建(同一台机器)
  9. 自定义jQuery 跨域请求 callback 函数名
  10. opencv保存图像自动命名
  11. rsync定时同步备份
  12. Android学习笔记之java中的回调函数
  13. PB数据窗口自动换下一页
  14. 微服务:知识点梳理(SOA、服务拆分、服务治理、分布式事务)
  15. KC伺服舵机带参四方向Demo程序
  16. IA-32:Privilege level
  17. java在微信朋友圈中植入广告_微信朋友圈广告植入怎么做
  18. 到底是人玩了游戏,还是游戏玩了人?----随笔心情
  19. 卸载conda安装的环境
  20. 用计算机唱樱花下的重逢,抖音樱花树下的重逢是谁唱的

热门文章

  1. Houdini HDK 读取shapefile矢量数据 02.5
  2. python爬取小说写入txt_python 爬取网络小说 清洗 并下载至txt文件
  3. Scrapy-Redis 爬取快代理免费
  4. fastapi python_fastapi安装及访问页面
  5. 高频小信号谐振放大器【Multisim】【高频电子线路】
  6. 金边php,柬埔寨首都,不如中国县级市?金边与中国各大城市比一比
  7. 如何制作在线html游戏,如何做一个成功的网页游戏网站
  8. Arduino中使用超声波测距实验
  9. UE4/UE5 多线程开发 附件插件下载地址
  10. matlab 算 cramer s v,基于Cramer’s V指数的遥感影像特征选择方法专利_专利查询 - 天眼查...