行业知识
java毕业设计项目 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管理员信息修改
管理员登录以后可以修改自己的登录密码。
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 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 selectBookList(Map map);int queryBookCount();List 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();@Overridepublic List selectBookList(Map map) {return bd.selectBookList(map);}@Overridepublic int queryBookCount() {return bd.queryBookCount();}@Overridepublic List getBookListPage(int pageNum, int pageSize) {return bd.getBookListPage(pageNum,pageSize);}@Overridepublic void deleteBook(String id) {bd.deleteBook(id);}@Overridepublic void saveBook(Book book) {bd.saveBook(book);}@Overridepublic Book selectBookById(String id) {return bd.selectBookById(id);}@Overridepublic void updateBook(Book book) {bd.updateBook(book);}@Overridepublic void saveRecord(Record record) {bd.saveRecord(record);}@Overridepublic void setBookType(Book book) {bd.setBookType(book);}@Overridepublic 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 '是否超时(1否 2 是)', `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 '是否能够借阅书籍 1是 2否', 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