毕业设计 Java Web图书管理系统毕业设计

项目类型:JAVA WEB项目
用户类型:管理员+学生
主要技术:Jsp+Servlet+MySQL+Tomcat
前端html+css样式:使用了LayUI
开发工具:Eclipse (Idea导入需要配置信息)
对应环境介绍:JDK1.8+MySQL 5.7+Tomcat(MySQL8.0需要更换mysql-connector8.0.jar)
数据库表:6
功能介绍:图书管理系统,包括了注册登录,学生在线借书、还书、续借,查看借阅统计,管理员管理书籍、添加藏书、管理借阅记录等。其中,每一个学生每一借阅都只能借阅30天,并且可以续借,续借以后,自动延长30天。

项目需求分析如下:
在这里插入图片描述

图书管理系统

  • 0项目结构设计
  • 1管理员功能介绍
  • * 1.1登录
    
    • 1.2借阅统计
    • 1.3管理员信息修改
    • 1.4图书分类管理
    • 1.5图书信息管理
    • 1.5图书借阅管理
    • 1.6学生信息管理
    • 1.6公告管理
  • 2用户功能介绍
  • * 2.1注册
    
    • 2.2个人信息管理
    • 2.3图书借阅
    • 2.4图书归还、续借
    • 2.5个人借阅统计
  • 3功能实现的代码介绍
  • * 3.1BookServlet.java类
    
    • 3.2BookService.java类
    • 3.3NewsDao.java类
    • 3.4BookDao.java类
  • 4数据库表的建立
  • * 4.1管理员表
    
    • 4.2公告表
    • 4.3书籍表
    • 4.4借阅记录表
    • 4.5学生表
    • 4.6书籍类型表

0项目结构设计

1.dao:对数据库的访问,实现了增删改查,SQL语句的定义。
2.entity:定义了实体,并设置对应实体的属性。
3.filter:过滤器,设置字符编码都为utf8,防止乱码出现。
4.service:业务逻辑处理的接口。
5.service.impl:接口的实现类。
5.servlet:处理页面请求。
6.utils:工具类。
7.c3p0-config.xml:JDBC配置。
在这里插入图片描述

1管理员功能介绍

1.1登录

在这里插入图片描述

1.2借阅统计

在线统计所有藏书的借阅情况,并且根据借阅次数进行排名。
在这里插入图片描述

1.3管理员信息修改

管理员登录以后可以修改自己的登录密码。

https://i-blog.csdnimg.cn/blog_migrate/a707e4818ef7d618abfa0d488ff0899d.jpeg

1.4图书分类管理

对图书分类的情况进行增删改查,每一本图书都有对应的图书分类。
在这里插入图片描述
修改和添加图书类型。并能够根据这些分类的名称进行查询。
在这里插入图片描述

1.5图书信息管理

对图书馆内的藏书进行增删改查,并可以根据书籍分类进行搜索。

在这里插入图片描述
可以根据图书类型、图书编号、图书名称、作者进行查询。
在这里插入图片描述

修改和添加图书信息,对书本信息包括编号、书名、库存、类型(从已有书本分类进行选择)等。

在这里插入图片描述

1.5图书借阅管理

此外,分成了两类借阅情况,分别是对于未归还和已经归还的分类。

在这里插入图片描述

在对借阅记录上,使用了分页查询的功能,当前每一页只显示4条记录,并可以在Eclipse里面修改每页显示的条数。
可以根据多种方式进行查询图书借阅的情况。
并可以在后台为用户进行续借、还书。

在这里插入图片描述

如下是所有未还书的记录。

在这里插入图片描述

1.6学生信息管理

能够实现所有的学生增删改查的功能。
在这里插入图片描述

1.6公告管理

发布公告。并对公告进行增删改查。​
在这里插入图片描述

2用户功能介绍

2.1注册

在这里插入图片描述

2.2个人信息管理

在这里插入图片描述

2.3图书借阅

在这里插入图片描述

2.4图书归还、续借

在这里插入图片描述

2.5个人借阅统计

在这里插入图片描述

3功能实现的代码介绍

以添加书籍功能为例

3.1BookServlet.java类

	/**
	 * 去新增图书页面
	 * @param request
	 * @param response
	 */
	private void toAddBook(HttpServletRequest request,
			HttpServletResponse response) {
		try {
			List<Types> typesList = new TypesServiceImpl().selectTypes();
			request.getSession().setAttribute("typesList", typesList);
			request.getRequestDispatcher("/WEB-INF/views/book/addBook.jsp").forward(request,response);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

3.2BookService.java类

定义了所有方法的接口

	public interface BookService {
	List<Book> selectBookList(Map<String, Object> map);
	int queryBookCount();
	List<Book> getBookListPage(int pageNum, int pageSize);
	void deleteBook(String id);
	void saveBook(Book book);
	Book selectBookById(String id);
	void updateBook(Book book);
	void saveRecord(Record record);
	void setBookType(Book book);
	Book selectBookByNo(String bookNo);

}

3.3NewsDao.java类

所有方法的实现类,继承BookService中的接口,实现方法。

public class BookServiceImpl implements BookService{

	private BookDao bd = new BookDao();
	@Override
	public List<Book> selectBookList(Map<String, Object> map) {
		return bd.selectBookList(map);
	}
	@Override
	public int queryBookCount() {
		return bd.queryBookCount();
	}
	@Override
	public List<Book> getBookListPage(int pageNum, int pageSize) {
		return bd.getBookListPage(pageNum,pageSize);
	}
	@Override
	public void deleteBook(String id) {
		bd.deleteBook(id);
	}
	@Override
	public void saveBook(Book book) {
		bd.saveBook(book);
	}
	@Override
	public Book selectBookById(String id) {
		return bd.selectBookById(id);
	}
	@Override
	public void updateBook(Book book) {
		bd.updateBook(book);
	}
	@Override
	public void saveRecord(Record record) {
		bd.saveRecord(record);
	}
	@Override
	public void setBookType(Book book) {
		bd.setBookType(book);
	}
	@Override
	public Book selectBookByNo(String bookNo) {
		return bd.selectBookByNo(bookNo);
	}

3.4BookDao.java类

数据访问层的方法,增加书籍数据。

	public void saveBook(Book book) {
		try {
            runner.update("insert into book (bookNo,bookName,bookZz,bookCbs,type,price,content,time,bookNum,imgUrl) values (?,?,?,?,?,?,?,?,?,?)",
            		book.getBookNo(),book.getBookName(),book.getBookZz(),book.getBookCbs()
            		,book.getType(),book.getPrice(),book.getContent(),book.getTime(),book.getBookNum(),book.getImgUrl());
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
	}
}

4数据库表的建立

在这里插入图片描述

4.1管理员表

-- ----------------------------
-- Table structure for admin
-- ----------------------------
DROP TABLE IF EXISTS `admin`;
CREATE TABLE `admin`  (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `userName` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `nickName` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `pwd` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

4.2公告表

-- ----------------------------
-- Table structure for board
-- ----------------------------
DROP TABLE IF EXISTS `board`;
CREATE TABLE `board`  (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `title` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `content` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `fbsj` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;


4.3书籍表

-- ----------------------------
-- Table structure for book
-- ----------------------------
DROP TABLE IF EXISTS `book`;
CREATE TABLE `book`  (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `bookNo` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '图书编号',
  `bookName` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '书名',
  `bookZz` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '作者',
  `bookCbs` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '出版社',
  `type` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '类型',
  `price` double(10, 2) NULL DEFAULT NULL COMMENT '价格',
  `content` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '简介',
  `state` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '状态 1空闲 2被借出',
  `time` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '录入时间',
  `bookNum` int(11) NULL DEFAULT NULL COMMENT '数量',
  `imgUrl` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 14 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

4.4借阅记录表

-- ----------------------------
-- Table structure for record
-- ----------------------------
DROP TABLE IF EXISTS `record`;
CREATE TABLE `record`  (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `bookId` int(11) NULL DEFAULT NULL,
  `bookName` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `studentId` int(11) NULL DEFAULT NULL,
  `studentName` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `studentPhone` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `bookPrice` double(10, 2) NULL DEFAULT NULL,
  `bookType` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `bookNo` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `jcTime` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '借书时间',
  `normalTime` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '正常归还时间(借书后30天内)',
  `actualTime` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '实际归还时间',
  `timeOut` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '是否超时(12 是)',
  `money` double(10, 2) NULL DEFAULT NULL COMMENT '需支付金额',
  `state` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '状态 1未还书 2已还书',
  `days` int(10) NULL DEFAULT NULL COMMENT '借书天数',
  `isxj` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '是否已经续借 1没有续借 2已经续借',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 40 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

4.5学生表

-- ----------------------------
-- Table structure for student
-- ----------------------------
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student`  (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `sex` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `classes` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '年级',
  `time` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '入学年月',
  `xy` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '学院',
  `phone` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `pwd` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `stno` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '学号',
  `state` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '是否能够借阅书籍 12否',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

4.6书籍类型表

-- ----------------------------
-- Table structure for types
-- ----------------------------
DROP TABLE IF EXISTS `types`;
CREATE TABLE `types`  (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `cjr` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `cjsj` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 11 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;


项目获取:

https://gitee.com/sinonfin/L-javaWebSha/tree/master

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于JavaWeb图书管理系统毕业设计软件源码+论文文档资料 摘 要 本文介绍了在Java运行环境下开发图书管理信息系统的过程。文章介绍了图书馆管理信息系统的系统分析部分,包括可行性分析、图书借阅流程分析等;系统设计部分主要介绍了系统功能设计和数据库设计及代码设计;系统实现部分说明了几个主要模块的算法,本系统界面友好,操作简单,比较实用。 本系统采用了JSP页面的设计,使用了MVC模式,它采用了当今软件设计的最新技术,具有开发效率高、设计灵活、生成的软件界面友好美观等特点。本系统中通过JDBC驱动和数据库进行无缝连接,后端的数据库是SqlServer 2005,该数据库界面友好,容易上手,具有较高的完整性,一致性和安全性。 关键词:Java图书管理系统;图书借阅;MVC;开源;数据库 需求分析 2.1 用户需求 2.1.1 数据需求 本图书管理系统主要的面向图书馆的管理者所开发的一款简洁的后台管理软件。对于该系统的数据需求可从以下几方面进行考虑: 1)从管理员角度分析,可得到管理员的帐号,用户名,密码,注册时间等数据。 2)从读者角度分析,可得到读者的学号,姓名,性别,所在院系,所借书籍等信息。 3)从书籍的角度出发,可得到书籍的图书ISBN,书名,出版社的相关信息,作者的相关信息,图书的价格,图书的版本号,出版年份,图书的封面图片等数据信息。 综上,在开发该系统的数据层时可以从上面所列三方面去设计数据库的表,进而能将所需数据全部包含起来。 2.1.2 功能需求 1.面向图书的功能有:图书列表的查询,图书入库,图书修订,图书的快速定位查询,由于此系统所面向的功能有限,所以将图书的作者和出版社加以细分,有出版社的管理,包括出版社的添加,出版社的修改,出版社的移除等,为了更方便的实现添加图书。同时还有对图书作者的单独管理,如对作者的查询,增加以及修改等。 2.面向管理员的功能有:管理员的登录,注册功能,管理员的修改以及显示等,还有管理员对读者的管理,即对用户实现的一些列操作,如对读者的增删改查,以及读者借阅图书和归还图书等。 此系统功能设计以图书和管理员为重心:本系统的主要功能模块主要有以上所提及的这些,还有较多小功能设计,如jquery验证,一些特效的显示等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值