【毕业设计】基于SSM的图书馆管理系统

文章目录

  • 0 项目说明
  • 1 概述
  • 2 环境配置
  • 3 概念设计
  • 4 逻辑设计
  • 5 功能展示
  • 6 项目源码
  • 7 最后


0 项目说明

基于SSM的图书馆管理系统

提示:适合用于课程设计或毕业设计,工作量达标,源码开放

项目分享:

https://gitee.com/asoonis/feed-neo


1 概述

基于Spring + Spring MVC + MyBatis的图书馆管理系统,使用Maven进行包管理。主要功能包括:图书查询、图书管理、图书编辑、读者管理、图书的借阅与归还以及借还日志记录等。

2 环境配置

开发环境:Windows 10,IntelliJ IDEA 2018.3

运行配置

  1. 首先安装Mysql5.7,设置用户名为root,密码为123456,并保证其在运行状态,并执行library.sql文件导入数据。
  2. 然后再配置Maven到环境变量中,在源代码目录下运行
# mvn jetty:run
  • 使用浏览器访问http://localhost:8080即可进入系统。

3 概念设计

用户分为两类:读者、图书馆管理员。

  • 图书馆管理员可以修改读者信息,修改书目信息,查看所有借还日志等;
  • 读者仅可以修改个人信息、借阅或归还书籍和查看自己的借还日志。
    在这里插入图片描述
    数据库E-R图
    在这里插入图片描述

4 逻辑设计

共有6个表:

1、图书书目表book_info
在这里插入图片描述
2、数据库管理员表admin
在这里插入图片描述
3、图书分类表class_info
在这里插入图片描述

4、借阅信息表lend_list
在这里插入图片描述

5、借阅卡信息表reader_card
在这里插入图片描述

6、读者信息表reader_info
在这里插入图片描述

5 功能展示

1、首页登陆
管理者账号:123456/123456 读者账号:10000/123456
在这里插入图片描述
2、管理员系统
图书管理在这里插入图片描述
图书详情
在这里插入图片描述
读者管理
在这里插入图片描述
借还管理
在这里插入图片描述
3、 读者系统
查看全部图书
在这里插入图片描述
个人信息查看,可以修个个人信息
在这里插入图片描述
个人借阅情况查看
在这里插入图片描述

6 项目源码

package com.library.controller;import com.library.bean.Admin;
import com.library.bean.ReaderCard;
import com.library.service.LoginService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.HashMap;@Controller
public class LoginController {private LoginService loginService;@Autowiredpublic void setLoginService(LoginService loginService) {this.loginService = loginService;}@RequestMapping(value = {"/", "/login.html"})public String toLogin(HttpServletRequest request) {request.getSession().invalidate();return "index";}@RequestMapping("/logout.html")public String logout(HttpServletRequest request) {request.getSession().invalidate();return "redirect:/login.html";}//负责处理loginCheck.html请求//请求参数会根据参数名称默认契约自动绑定到相应方法的入参中@RequestMapping(value = "/api/loginCheck", method = RequestMethod.POST)public @ResponseBodyObject loginCheck(HttpServletRequest request) {long id = Long.parseLong(request.getParameter("id"));String passwd = request.getParameter("passwd");boolean isReader = loginService.hasMatchReader(id, passwd);boolean isAdmin = loginService.hasMatchAdmin(id, passwd);HashMap res = new HashMap<>();if (isAdmin) {Admin admin = new Admin();admin.setAdminId(id);admin.setPassword(passwd);String username = loginService.getAdminUsername(id);admin.setUsername(username);request.getSession().setAttribute("admin", admin);res.put("stateCode", "1");res.put("msg", "管理员登陆成功!");} else if (isReader) {ReaderCard readerCard = loginService.findReaderCardByReaderId(id);request.getSession().setAttribute("readercard", readerCard);res.put("stateCode", "2");res.put("msg", "读者登陆成功!");} else {res.put("stateCode", "0");res.put("msg", "账号或密码错误!");}return res;}@RequestMapping("/admin_main.html")public ModelAndView toAdminMain(HttpServletResponse response) {return new ModelAndView("admin_main");}@RequestMapping("/reader_main.html")public ModelAndView toReaderMain(HttpServletResponse response) {return new ModelAndView("reader_main");}@RequestMapping("/admin_repasswd.html")public ModelAndView reAdminPasswd() {return new ModelAndView("admin_repasswd");}@RequestMapping("/admin_repasswd_do")public String reAdminPasswdDo(HttpServletRequest request, String oldPasswd, String newPasswd, String reNewPasswd, RedirectAttributes redirectAttributes) {Admin admin = (Admin) request.getSession().getAttribute("admin");long id = admin.getAdminId();String password = loginService.getAdminPassword(id);if (password.equals(oldPasswd)) {if (loginService.adminRePassword(id, newPasswd)) {redirectAttributes.addFlashAttribute("succ", "密码修改成功!");return "redirect:/admin_repasswd.html";} else {redirectAttributes.addFlashAttribute("error", "密码修改失败!");return "redirect:/admin_repasswd.html";}} else {redirectAttributes.addFlashAttribute("error", "旧密码错误!");return "redirect:/admin_repasswd.html";}}@RequestMapping("/reader_repasswd.html")public ModelAndView reReaderPasswd() {return new ModelAndView("reader_repasswd");}@RequestMapping("/reader_repasswd_do")public String reReaderPasswdDo(HttpServletRequest request, String oldPasswd, String newPasswd, String reNewPasswd, RedirectAttributes redirectAttributes) {ReaderCard reader = (ReaderCard) request.getSession().getAttribute("readercard");long id = reader.getReaderId();String password = loginService.getReaderPassword(id);if (password.equals(oldPasswd)) {if (loginService.readerRePassword(id, newPasswd)) {redirectAttributes.addFlashAttribute("succ", "密码修改成功!");return "redirect:/reader_repasswd.html";} else {redirectAttributes.addFlashAttribute("error", "密码修改失败!");return "redirect:/reader_repasswd.html";}} else {redirectAttributes.addFlashAttribute("error", "旧密码错误!");return "redirect:/reader_repasswd.html";}}//配置404页面@RequestMapping("*")public String notFind() {return "404";}}

7 最后

项目分享:

https://gitee.com/asoonis/feed-neo


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部