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

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 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);
}
相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
11天前
|
NoSQL Java 关系型数据库
Liunx部署java项目Tomcat、Redis、Mysql教程
本文详细介绍了如何在 Linux 服务器上安装和配置 Tomcat、MySQL 和 Redis,并部署 Java 项目。通过这些步骤,您可以搭建一个高效稳定的 Java 应用运行环境。希望本文能为您在实际操作中提供有价值的参考。
72 26
|
15天前
|
JavaScript 安全 Java
java版药品不良反应智能监测系统源码,采用SpringBoot、Vue、MySQL技术开发
基于B/S架构,采用Java、SpringBoot、Vue、MySQL等技术自主研发的ADR智能监测系统,适用于三甲医院,支持二次开发。该系统能自动监测全院患者药物不良反应,通过移动端和PC端实时反馈,提升用药安全。系统涵盖规则管理、监测报告、系统管理三大模块,确保精准、高效地处理ADR事件。
|
25天前
|
关系型数据库 MySQL Java
MySQL索引优化与Java应用实践
【11月更文挑战第25天】在大数据量和高并发的业务场景下,MySQL数据库的索引优化是提升查询性能的关键。本文将深入探讨MySQL索引的多种类型、优化策略及其在Java应用中的实践,通过历史背景、业务场景、底层原理的介绍,并结合Java示例代码,帮助Java架构师更好地理解并应用这些技术。
25 2
|
1月前
|
监控 前端开发 Java
【技术开发】接口管理平台要用什么技术栈?推荐:Java+Vue3+Docker+MySQL
该文档介绍了基于Java后端和Vue3前端构建的管理系统的技术栈及功能模块,涵盖管理后台的访问、登录、首页概览、API接口管理、接口权限设置、接口监控、计费管理、账号管理、应用管理、数据库配置、站点配置及管理员个人设置等内容,并提供了访问地址及操作指南。
|
2月前
|
Java 关系型数据库 MySQL
自动化测试项目实战笔记(一):JDK、Tomcat、MySQL、Jpress环境安装和搭建
这篇文章是关于自动化测试项目实战笔记,涵盖了JDK、Tomcat、MySQL、Jpress环境的安装和搭建过程,以及测试用例和常见问题总结。
53 1
自动化测试项目实战笔记(一):JDK、Tomcat、MySQL、Jpress环境安装和搭建
|
2月前
|
SQL Java 关系型数据库
java连接mysql查询数据(基础版,无框架)
【10月更文挑战第12天】该示例展示了如何使用Java通过JDBC连接MySQL数据库并查询数据。首先在项目中引入`mysql-connector-java`依赖,然后通过`JdbcUtil`类中的`main`方法实现数据库连接、执行SQL查询及结果处理,最后关闭相关资源。
142 6
|
2月前
|
Java 应用服务中间件 Apache
浅谈Tomcat和其他WEB容器的区别
Tomcat是一款轻量级的免费开源Web应用服务器,常用于中小型系统及并发访问量适中的场景,尤其适合开发和调试JSP程序。它不仅能处理HTML页面,还充当Servlet和JSP容器。相比之下,物理服务器是指具备处理器、硬盘等硬件设施的服务器,如云服务器,其设计目标是在处理能力、稳定性和安全性等方面提供高标准服务。简言之,Tomcat专注于运行Java应用,而物理服务器则提供基础计算资源。
|
开发框架 Java 应用服务中间件
搭建一个tomcat的JSP服务器环境
搭建一个tomcat的JSP服务器环境
91 0
|
2月前
|
安全 应用服务中间件 网络安全
Tomcat如何配置PFX证书?
【10月更文挑战第2天】Tomcat如何配置PFX证书?
237 7
|
2月前
|
存储 算法 应用服务中间件
Tomcat如何配置JKS证书?
【10月更文挑战第2天】Tomcat如何配置JKS证书?
369 4
下一篇
DataWorks