图书管理系统设计与实现

> 图书馆人员结构复杂,人员数量有限,涉及方面很广,如果还使用手工操作处理图书借阅问题,工作将非常繁琐,需要大量的人力、物理、财力,极大的浪费了资源,对于图书管理人员来说,图书馆管理包括图书信息管理、图书类别管理、借阅信息管理、管理员信息管理等等。而这些项目在过去靠手工操作,需要手工记录这些事情,不但麻烦,还经常出错,给广大用户带来很多不便,因此,开发这样一套图书馆管理系统软件。让管理员方便的管理图书及用户信息,方便用户查找图书。

1、本课程设计的目的

(1)掌握企业级应用系统的基本开发流程;

(2)培养开发者掌握应用系统设计的基本思路和方法;

(3)培养开发者分析、解决问题的能力;

2、系统要实现的功能概述

(1)用户登录。管理员或会员根据用户名和密码进行身份验证登录系统。

(2)图书管理。根据图书编号、图书名称查询图书基本信息添加、修改、删除图书。

(3)读者管理。根据账号、姓名查询读者基本信息。添加、修改、删除读者信息。

(4)图书分类管理。根据分类名称查询图书分类信息。添加、修改、删除图书分类。

(5)图书借阅。展示所有正在借阅图书的信息。

(6)图书归还。展示所有已归还图书的信息。

(7)修改和查询个人信息。

3、实现平台及技术

(1)JAVA语言

(2)MYSQL数据库

(3)WINDOWS 10操作系统

(4)JAVAEE 技术

(5)Servlet技术

(6)Eclipse工具

(7)Html、css、JavaScript

4、需求分析

系统的主要目的是实现一个图书管理系统。系统有2类用户分别为管理员、 读者会员。管理员经口令认证进人系统后,管理员可完成维护系统的功能,包括管理图书和管理会员。读者会员则完成查询图书、修改个人资料、查询个人借阅信息、归还借阅图书的功能,工作完成后可以退出系统。

5、系统功能模块划分

5.1 系统总体功能模块划分

5.2 用户登录模块

当用普通用户输入用户名和密码后,进行验证,如果用户名和密码其中有一个不正确,则不能登录,并有相应的提示,如果用户没有账号,可以在登录页面进行注册,普通用户可以进行个人资料的查询、修改和修改密码,普通用户可以查询图书信息并借阅和退还,在首页面会展示图书借阅信息和借阅历史信息。

当用管理员输入用户名和密码后,进行验证,如果用户名和密码其中有一个不正确,则不能登录,并有相应的提示,管理员可以进行个人资料的查询、修改和修改密码,管理员可以对图书信息,读者信息,借阅信息进行查看和管理,对图书进行分类

5.3 图书信息管理模块

管理员对图书的数量,图书号,图书类型,图书名称等进行修改、删除管理,如果普通用户在线借书,图书总数会相应减少。

5.4 读者管理模块

管理员对读者信息可以进行进行修改、删除,并且可以主动添加新用户,该模块显示用户借阅天数,天数会自动变化,管理员可以在线监控读者借阅天数,如果到期未还者,账号则不能登录。

5.5 图书分类管理模块

管理员在线对图书进行管理,对图书分类进行增加,修改,删除操作。

5.6 图书借阅信息模块

管理员可以在线管理借阅信息,可以主动帮读者还书。

5.7 图书归还信息管理模块

显示归还图书的详细信息。

5.8 图书查询模块

用户访问图书查询模块时显示当前可以借阅图书,有按图书名称查询图书信息的功能,可以进行借书操作。

5.9 图书借阅信息模块

显示当前登录用户借阅的所有图书,以及各个图书的编号,图书名称,借阅日期,还书日期,读者账号,读者名称信息。登录用户可以进行还书操作,还书是否成功有相应的提示。

5.10 借阅历史模块

显示当前登录用户的图书借阅记录。

6、数据库设计

6.1 数据库的 E-R 图

Admin(用户)表 E-R 图

Book(图书)表 E-R 图

BookType(图书类型)表 E-R 图

History(历史)表 E-R 图

6.2 数据库数据结构设计

数据库采用的是的mysql数据库,系统主要需要维护4张数据表:

用户表信息(admin):

图书表信息(book):

图书类型表信息(bookType):

图书历史表信息(history):

7、系统详细设计和实现

7.1 用户登录

用户登录主要是在登陆窗体中实现身份验证。用户通过输入用户名和密码,进入图 5-1,判别用户名是否存在和密码是否正确。通过系统验证证后才能进入主界面;验证失败,则跳转登陆界面返回错误信息,如登陆账号为空、登陆密码为空、用户名和密码不匹配等并请重新输入。此登陆页面图书管理员和普通用户进入时一样的,通过查询数据库status状态来判断用户属于哪一种,从而进行不同的跳转。

主要代码:

package com.rain.servlet;

import java.io.IOException;

import java.io.PrintWriter;

import javax.servlet.RequestDispatcher;

import javax.servlet.ServletException;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import javax.servlet.http.HttpSession;

import javax.websocket.Session;

import com.rain.bean.AdminBean;

import com.rain.dao.AdminDao;

@WebServlet("/LoginServlet")

public class LoginServlet extends HttpServlet {

private static final long serialVersionUID = 1L;

public LoginServlet() {

super();

}

Protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{

}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

//登录的判断

PrintWriter out = response.getWriter();

request.setCharacterEncoding("UTF-8");

response.setContentType("text/html;charset=UTF-8");

//获取账号和密码

String username = request.getParameter("username");

String password = request.getParameter("password");

AdminDao userdao = new AdminDao();

//对账号和密码进行判断

boolean result = userdao.Login_verify(username, password);

HttpSession session = request.getSession();

//判断输入正确

if (result) {

AdminBean adminbean = new AdminBean();

AdminDao admindao = new AdminDao();

//更加账号和密码查找出读者的信息

adminbean = admindao.getAdminInfo(username, password);

//将aid存入session中

session.setAttribute("aid", "" + adminbean.getAid());

//设置session的失效时间

session.setMaxInactiveInterval(6000);

//根据status的值来判断是管理员,还是读者,status=1为读者

if (adminbean.getStatus() == 1) {

response.sendRedirect("/books/index2.jsp");

} else {

response.sendRedirect("/books/admin.jsp");

}

} else {

//没有找到对应的账号和密码,返回重新登录

session.setAttribute("state", "密码错误");

response.sendRedirect("/books/login.jsp");

}

}

}

7.2 图书查询

管理员可以通过根据图书号 、图书名称,作者名称,出版社等查询图书信息。

主要代码:

package com.rain.servlet;

import java.io.IOException;

import java.util.ArrayList;

import javax.servlet.ServletException;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import com.rain.bean.BookBean;

import com.rain.dao.BookDao;

@WebServlet("/selectServlet")

public class selectServlet extends HttpServlet {

private static final long serialVersionUID = 1L;

public selectServlet() {

super();

// TODO Auto-generated constructor stub

}

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

request.setCharacterEncoding("UTF-8");

response.setContentType("text/html;charset=UTF-8");

//因为在管理员界面和读者界面都有查找功能,为了将查找的结果返回正确的页面,设置了tip,tip=1表示管理员界面

int tip = Integer.parseInt(request.getParameter("tip"));

String name = request.getParameter("name");

BookDao bookdao = new BookDao();

ArrayList data = bookdao.getLikeList(name);

//将获取的结果存入请求中

request.setAttribute("data", data);

String url = "";

//转发不同的界面

if (tip == 1) {

url = response.encodeURL("admin_book.jsp");

} else {

url = response.encodeURL("select.jsp");

}

//将请求转发

request.getRequestDispatcher(url).forward(request, response);

}

}

7.3 添加图书

主要代码:

package com.rain.servlet;

import java.io.IOException;

import javax.servlet.ServletException;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import com.rain.dao.BookDao;

@WebServlet("/AddBookServlet")

public class AddBookServlet extends HttpServlet {

private static final long serialVersionUID = 1L;

public AddBookServlet() {

super();

// TODO Auto-generated constructor stub

}

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

//设置编码类型

request.setCharacterEncoding("UTF-8");

response.setContentType("text/html;charset=UTF-8");

//获取要添加图书的信息

String card = request.getParameter("card");

String name = request.getParameter("name");

String type = request.getParameter("type");

String autho = request.getParameter("autho");

String press = request.getParameter("press");

int num = Integer.parseInt(request.getParameter("num"));

BookDao bookdao = new BookDao();

//调用函数,存入图书

bookdao.addBook(card, name, type, autho, press, num);

response.sendRedirect("/books/admin_book.jsp");

}

}

7.4图书信息修改

主要代码:

package com.rain.servlet;

import java.io.IOException;

import java.io.PrintWriter;

import javax.servlet.ServletException;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import com.rain.dao.BookDao;

@WebServlet("/updateBookServlet")

public class updateBookServlet extends HttpServlet {

private static final long serialVersionUID = 1L;

public updateBookServlet() {

super();

// TODO Auto-generated constructor stub

}

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

//修改图书信息

request.setCharacterEncoding("UTF-8");

response.setContentType("text/html;charset=UTF-8");

String card = request.getParameter("card");

String name = request.getParameter("name");

String type = request.getParameter("type");

String autho = request.getParameter("autho");

String press = request.getParameter("press");

int num = Integer.parseInt(request.getParameter("num"));

Int bid = Integer.parseInt(request.getParameter("updatebid"));

BookDao bookdao = new BookDao();

bookdao.updateBook(bid, card, name, type, autho, press, num);

response.sendRedirect("/books/admin_book.jsp");

}

}

7.5 图书删除

主要代码:

package com.rain.servlet;

import java.io.IOException;

import java.io.PrintWriter;

import javax.servlet.ServletException;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import com.rain.dao.BookDao;

@WebServlet("/deleteServlet")

public class deleteServlet extends HttpServlet {

private static final long serialVersionUID = 1L;

public deleteServlet() {

super();

// TODO Auto-generated constructor stub

}

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

//删除图书信息

request.setCharacterEncoding("UTF-8");

response.setContentType("text/html;charset=UTF-8");

int bid = Integer.parseInt(request.getParameter("bid"));

BookDao bookdao = new BookDao();

bookdao.deleteBook(bid);

response.sendRedirect("/books/admin_book.jsp");

}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

// TODO Auto-generated method stub

doGet(request, response);

}

}

好用记得点赞分享哦!!!!

注:此系统不是本人原创,在原系统基础上进行修改,加以创新。

侵权请联系删除

javaee图书管理系统mysql,图书管理系统设计与实现—看这篇就够了相关推荐

  1. 图书管理系统设计与实现—看这篇就够了

    文章目录 1.本课程设计的目的 2.系统要实现的功能概述 3.实现平台及技术 4.需求分析 5.系统功能模块划分 5.1 系统总体功能模块划分 5.2 用户登录模块 5.3 图书信息管理模块 5.4 ...

  2. 大厂面试官必问的 MySQL 索引调优等问题,看这篇就够了

    图片来源:pexels.com 孙玄,江湖人称"玄姐",前58集团技术委员会主席,前转转二手交易平台首席架构师.今天想跟你聊点儿企业里那些年薪百万的架构师,他们的架构设计思维是如何 ...

  3. 【java毕业设计】基于javaEE+SSH+oracle的健康管理系统设计与实现(毕业论文+程序源码)——健康管理系统

    基于javaEE+SSH+oracle的健康管理系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于javaEE+SSH+oracle的健康管理系统设计与实现,文章末尾附有本毕业设计的论文 ...

  4. 【java毕业设计】基于javaEE+SSH+oracle的土地档案管理系统设计与实现(毕业论文+程序源码)——土地档案管理系统

    基于javaEE+SSH+oracle的土地档案管理系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于javaEE+SSH+oracle的土地档案管理系统设计与实现,文章末尾附有本毕业设 ...

  5. 图书管理系统之图书管理模块(六)

    图书管理系统之图书管理模块(六) 相关源码下载连接:https://download.csdn.net/download/baidu_39378193/85033291 前言: 1.在区域文件中创建书 ...

  6. 计算机代码设计-基于ssm的员工工资管理系统-人事工资管理系统设计-企业工资管理系统代码

    计算机代码设计-基于ssm的员工工资管理系统-人事工资管理系统设计-企业工资管理系统代码 注意:该项目只展示部分功能,如需了解,评论区咨询即可. 1.开发环境 开发语言:Java 后台:SSM(Spr ...

  7. Java窗体图书管理系统Java图书借阅管理系统(图书借阅系统)

    Java窗体图书管理系统Java图书借阅管理系统(图书借阅系统)

  8. 一下子搞懂JDBC,看这篇就够了--以MySQL为例。

    一下子搞懂JDBC,看这篇就够了–以MySQL为例. 文章目录 一下子搞懂JDBC,看这篇就够了--以MySQL为例. 一.什么是JDBC? 二.JDBC的使用步骤 三.jdbc进阶--上述各个类或接 ...

  9. Java+Jsp+MySql实现图书管理系统_图书管理系统代码

    文章目录 01 系统介绍 02 下载源码 03 工程结构 04 访问系统 05 技术支持 06 功能展示 管理员 普通用户 01 系统介绍 系统名称:图书管理系统(manage_books) 开发工具 ...

最新文章

  1. datatables中的bug
  2. Visual Studio安装卸载模板
  3. 用 JOTM 向Servlet中添加事务
  4. UCloud-201809-001:Redis服务未授权访问漏洞安全预警
  5. java1.8的特性,java1.8新特性
  6. GDCM:cmyk的Png文件转dicom文件的测试程序
  7. 功能:人脉(People Hub)7-固定到“开始”屏幕
  8. opencv 伽马变换
  9. mysql二级索引_mysql 什么是二级索引
  10. 【Caffe实践】基于CNN的性别、年龄识别的代码实现
  11. javaWeb框架开发
  12. 服务器2012系统登录密码忘记6,Server2012忘记管理员密码的处理方法
  13. Unity随机创造敌人
  14. AWS中IGW,NAT GW以及Egress-only IGW的概念和区别
  15. 亚马逊EC2使用账号密码登录
  16. python改变图像颜色_通过python改变图片特定区域的颜色详解
  17. i.MX6ULL应用移植 | 移植ALSA到Linux开发板(alsa-lib、alsa-utils 1.2.7版本)
  18. 疯狂涨知识!拥有百万粉丝的大牛讲述学Android的历程,挥泪整理面经
  19. java indexOf方法
  20. 股票的最大收益(炒股毁一生)

热门文章

  1. Linux——设置汉字拼音输入法
  2. KeyStore是什么
  3. 计算机主机房的消防配置,计算机机房消防安全审核标准
  4. Citrix_XenServer-6.1安装过程详解
  5. 组建一个最简单的局域网
  6. 在线学习平台网站分享 (持续更新)
  7. 格式化硬盘出现/dev/sdb2 is apparently in use by the system错误
  8. 二代身份证号码最后一位校验位的计算方法
  9. win2003 php asp.net,Win2003下配置iis+php+mysql+zend图文 使其支持asp,.net,cgi,perl和php
  10. Boost库-功能介绍-Geometry-图形开发库-计算几何-常用功能封装-GraphicalDebugging(二)