Java+JSP+Mysql+Tomcat实现Web图书管理系统(上)

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: Java+JSP+Mysql+Tomcat实现Web图书管理系统

一、系统介绍


1.软件环境


IDEA:2018.2

Java:jdk1.8

Mysql:8.0.13

Tomcat:8.5.23


2.功能模块图


2021052310065920.jpg

3.系统功能


1.系统的注册、登录、注销

2.读者信息管理

系统管理员可以对读者信息进行查询、添加、修改、删除等操作。

3.图书信息管理

系统管理员可以对图书信息进行查询、添加、修改、删除等操作。

4.借阅信息管理

管理管理可以对借阅信息进行查询和删除操作,用户可以对借阅信息进行新增、查看操作。

5.个人书架管理

用户对个人书架的新增、删处、查看操作。

6.留言管理

用户可以对留言进行新增、查看操作。


4.数据库表


1.读者表


20210523101329803.jpg


2.借阅信息表


2021052310135125.jpg


3.评论留言表


20210523101402515.jpg


4.图书表


20210523101416728.jpg


5.书架表


2021052310141690.jpg


5.工程截图


20210523103041129.jpg


二、系统展示


1.系统注册


20210523101612557.jpg


2.系统登录


20210523101647895.jpg


3.找回密码


20210523101713287.jpg


4.管理员-主页


20210523101735670.jpg


5.管理员-用户管理主页


20210523101817173.jpg


6.管理员-新增用户


20210523101828729.jpg


7.管理员-修改用户


20210523101841968.jpg


8.管理员-借阅信息管理


20210523101852772.jpg


9.管理员-图书管理主页


2021052310190628.jpg


10.管理员-新增图书


20210523101940833.jpg


11.管理员-修改图书


20210523101950821.jpg


12.用户-主页


20210523102011363.jpg


13.用户-图书明细查看


20210523102050432.jpg



14.用户-新增留言


20210523102102718.jpg


15.用户-借阅信息管理


20210523102115563.jpg


16.用户-书架管理


20210523102131945.jpg



三、代码实现


Book

package com.sjsq.po;
import java.io.Serializable;
import java.util.Date;
/**
 * @author shuijianshiqing
 * @date 2020/5/19 22:40
 */
public class Book implements Serializable {
    private static final long serialVersionUID = 1L;
    private Integer bookid;
    private String bookname;
    private Double price;
    private String author;
    private String publish;
    private Integer categoryid;
    private String booklink;
    private Date deadline;
    public static long getSerialVersionUID() {
        return serialVersionUID;
    }
    public Integer getBookid() {
        return bookid;
    }
    public void setBookid(Integer bookid) {
        this.bookid = bookid;
    }
    public String getBookname() {
        return bookname;
    }
    public void setBookname(String bookname) {
        this.bookname = bookname;
    }
    public Double getPrice() {
        return price;
    }
    public void setPrice(Double price) {
        this.price = price;
    }
    public String getAuthor() {
        return author;
    }
    public void setAuthor(String author) {
        this.author = author;
    }
    public String getPublish() {
        return publish;
    }
    public void setPublish(String publish) {
        this.publish = publish;
    }
    public Integer getCategoryid() {
        return categoryid;
    }
    public void setCategoryid(Integer categoryid) {
        this.categoryid = categoryid;
    }
    public String getBooklink() {
        return booklink;
    }
    public void setBooklink(String booklink) {
        this.booklink = booklink;
    }
    public Date getDeadline() {
        return deadline;
    }
    public void setDeadline(Date deadline) {
        this.deadline = deadline;
    }
    @Override
    public String toString() {
        return "Book{" +
                "bookid=" + bookid +
                ", bookname='" + bookname + '\'' +
                ", price=" + price +
                ", author='" + author + '\'' +
                ", publish='" + publish + '\'' +
                ", categoryid=" + categoryid +
                ", booklink='" + booklink + '\'' +
                ", deadline=" + deadline +
                '}';
    }
}

User

package com.sjsq.po;
import java.io.Serializable;
/**
 * @author shuijianshiqing
 * @date 2020/5/19 22:19
 * 用户的实体类
 */
public class User implements Serializable {
    // 增加序列号,作用是反序列化的时候不会报错,切能进行IO的持久化
    public static final long serialVersionUID = 1L;
    private Integer userid;
    private String username;
    private String password;
    private String email;
    private String phone;
    private Integer isadmin;
    public static long getSerialVersionUID() {
        return serialVersionUID;
    }
    public Integer getUserid() {
        return userid;
    }
    public void setUserid(Integer userid) {
        this.userid = userid;
    }
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }
    public String getPhone() {
        return phone;
    }
    public void setPhone(String phone) {
        this.phone = phone;
    }
    public Integer getIsadmin() {
        return isadmin;
    }
    public void setIsadmin(Integer isadmin) {
        this.isadmin = isadmin;
    }
    @Override
    public String toString() {
        return "User{" +
                "userid=" + userid +
                ", username='" + username + '\'' +
                ", password='" + password + '\'' +
                ", email='" + email + '\'' +
                ", phone='" + phone + '\'' +
                ", isadmin=" + isadmin +
                '}';
    }
}

Record

package com.sjsq.po;
import java.util.Date;
/**
 * @author shuijianshiqing
 * @date 2021/5/22 22:05
 * 借阅记录实体类
 */
public class Record {
    private Integer borrowid;
    private Integer userid;
    private Integer bookid;
    private String bookname;
    private String booklink;
    private Date borrowtime;
    public Integer getBorrowid() {
        return borrowid;
    }
    public void setBorrowid(Integer borrowid) {
        this.borrowid = borrowid;
    }
    public Integer getUserid() {
        return userid;
    }
    public void setUserid(Integer userid) {
        this.userid = userid;
    }
    public Integer getBookid() {
        return bookid;
    }
    public void setBookid(Integer bookid) {
        this.bookid = bookid;
    }
    public String getBookname() {
        return bookname;
    }
    public void setBookname(String bookname) {
        this.bookname = bookname;
    }
    public String getBooklink() {
        return booklink;
    }
    public void setBooklink(String booklink) {
        this.booklink = booklink;
    }
    public Date getBorrowtime() {
        return borrowtime;
    }
    public void setBorrowtime(Date borrowtime) {
        this.borrowtime = borrowtime;
    }
    @Override
    public String toString() {
        return "Record{" +
                "borrowid=" + borrowid +
                ", userid=" + userid +
                ", bookid=" + bookid +
                ", bookname='" + bookname + '\'' +
                ", booklink='" + booklink + '\'' +
                ", borrowtime=" + borrowtime +
                '}';
    }
}

Comment

package com.sjsq.po;
import java.sql.Time;
import java.util.Date;
/**
 * @author shuijianshiqing
 * @date 2021/5/22 17:18
 *
 * 留言表
 */
public class Comment {
    private Integer commentid;
    private Integer userid;
    private String username;
    private Integer bookid;
    private String bookname;
    private String comment;
    private Date time;
    public Integer getCommentid() {
        return commentid;
    }
    public void setCommentid(Integer commentid) {
        this.commentid = commentid;
    }
    public Integer getUserid() {
        return userid;
    }
    public void setUserid(Integer userid) {
        this.userid = userid;
    }
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public Integer getBookid() {
        return bookid;
    }
    public void setBookid(Integer bookid) {
        this.bookid = bookid;
    }
    public String getBookname() {
        return bookname;
    }
    public void setBookname(String bookname) {
        this.bookname = bookname;
    }
    public String getComment() {
        return comment;
    }
    public void setComment(String comment) {
        this.comment = comment;
    }
    public Date getTime() {
        return time;
    }
    public void setTime(Date time) {
        this.time = time;
    }
    @Override
    public String toString() {
        return "Comment{" +
                "commentid=" + commentid +
                ", userid=" + userid +
                ", username='" + username + '\'' +
                ", bookid=" + bookid +
                ", bookname='" + bookname + '\'' +
                ", comment='" + comment + '\'' +
                ", time=" + time +
                '}';
    }
}

BookShelf

package com.sjsq.po;
import java.util.Date;
/**
 * @author shuijianshiqing
 * @date 2021/5/22 12:21
 * 书架类
 */
public class BookShelf {
    private Integer id;
    private Integer userid;
    private Integer bookid;
    private String bookname;
    private String booklink;
    private Date adddate;
    private Date removedate;
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public Integer getUserid() {
        return userid;
    }
    public void setUserid(Integer userid) {
        this.userid = userid;
    }
    public Integer getBookid() {
        return bookid;
    }
    public void setBookid(Integer bookid) {
        this.bookid = bookid;
    }
    public String getBookname() {
        return bookname;
    }
    public void setBookname(String bookname) {
        this.bookname = bookname;
    }
    public String getBooklink() {
        return booklink;
    }
    public void setBooklink(String booklink) {
        this.booklink = booklink;
    }
    public Date getAdddate() {
        return adddate;
    }
    public void setAdddate(Date adddate) {
        this.adddate = adddate;
    }
    public Date getRemovedate() {
        return removedate;
    }
    public void setRemovedate(Date removedate) {
        this.removedate = removedate;
    }
    @Override
    public String toString() {
        return "BookShelf{" +
                "id=" + id +
                ", userid=" + userid +
                ", bookid=" + bookid +
                ", bookname='" + bookname + '\'' +
                ", booklink='" + booklink + '\'' +
                ", adddate=" + adddate +
                ", removedate=" + removedate +
                '}';
    }
}

BookDao

package com.sjsq.dao;
import com.sjsq.po.Book;
import java.util.List;
/**
 * @author shuijianshiqing
 * @date 2020/5/20 23:13
 * 图书信息接口
 */
public interface BookDao {
    /**
     * 查询图书信息
     * @param sql
     * @param arr
     * @return
     */
    public List<Book> select(String sql, Object[] arr);
    /**
     * 根据图书编号进行查询
     * @param bookid
     * @return
     */
    public Book getBook(Integer bookid);
    /**
     * 图书新增
     * @param book
     * @return
     */
    public boolean addBook(Book book);
    /**
     * 图书修改
     * @param book
     * @return
     */
    public boolean updateBook(Book book);
    /**
     * 删除图书
     * @param bookid
     * @return
     */
    public boolean deleteBook(Integer bookid);
}
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
20天前
|
监控 JavaScript 前端开发
《理解 WebSocket:Java Web 开发的实时通信技术》
【4月更文挑战第4天】WebSocket是Java Web实时通信的关键技术,提供双向持久连接,实现低延迟、高效率的实时交互。适用于聊天应用、在线游戏、数据监控和即时通知。开发涉及服务器端实现、客户端连接及数据协议定义,注意安全、错误处理、性能和兼容性。随着实时应用需求增加,WebSocket在Java Web开发中的地位将更加重要。
|
4天前
|
JavaScript Java 测试技术
基于Java的兰亭序图书管理系统的设计与实现(源码+lw+部署文档+讲解等)
基于Java的兰亭序图书管理系统的设计与实现(源码+lw+部署文档+讲解等)
15 0
|
8天前
|
Web App开发 Java 应用服务中间件
【Java Web】在 IDEA 中部署 Tomcat
【Java Web】在 IDEA 中部署 Tomcat
|
18天前
|
安全 前端开发 Java
Java Web开发知识点学习总结
Java Web开发涉及Java基础、Servlet、JSP、数据库操作(SQL+JDBC)、MVC设计模式、Spring框架、Hibernate ORM、Web服务(SOAP&RESTful)、安全认证(HTTP Basic/Digest/OAuth)及性能优化(缓存、异步、负载均衡)。
17 3
|
21天前
|
XML JSON JavaScript
使用JSON和XML:数据交换格式在Java Web开发中的应用
【4月更文挑战第3天】本文比较了JSON和XML在Java Web开发中的应用。JSON是一种轻量级、易读的数据交换格式,适合快速解析和节省空间,常用于API和Web服务。XML则提供更强的灵活性和数据描述能力,适合复杂数据结构。Java有Jackson和Gson等库处理JSON,JAXB和DOM/SAX处理XML。选择格式需根据应用场景和需求。
|
21天前
|
前端开发 安全 Java
使用Java Web框架:Spring MVC的全面指南
【4月更文挑战第3天】Spring MVC是Spring框架的一部分,用于构建高效、模块化的Web应用。它基于MVC模式,支持多种视图技术。核心概念包括DispatcherServlet(前端控制器)、HandlerMapping(请求映射)、Controller(处理请求)、ViewResolver(视图解析)和ModelAndView(模型和视图容器)。开发流程涉及配置DispatcherServlet、定义Controller、创建View、处理数据、绑定模型和异常处理。
使用Java Web框架:Spring MVC的全面指南
|
23天前
|
Java
排课系统【JSP+Servlet+JavaBean】(Java课设)
排课系统【JSP+Servlet+JavaBean】(Java课设)
7 0
|
30天前
|
Web App开发 前端开发 开发工具
介绍Web开发的基础知识
介绍Web开发的基础知识
29 7
|
1月前
|
缓存 关系型数据库 API
后端开发:构建高效、可扩展的Web应用程序的关键
后端开发:构建高效、可扩展的Web应用程序的关键
20 0
|
5天前
|
JSON Java fastjson
Spring Boot 底层级探索系列 04 - Web 开发(2)
Spring Boot 底层级探索系列 04 - Web 开发(2)
15 0