【毕业设计】基于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
运行配置
- 首先安装Mysql5.7,设置用户名为root,密码为123456,并保证其在运行状态,并执行library.sql文件导入数据。
- 然后再配置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
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
