基于javaweb的图书馆图书管理借阅书籍管理系统(java+ssm+jsp+html+mysql)

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

基于javaweb+mysql的图书馆图书管理借阅书籍管理系统(java+SSM+JSP+HTML+mysql)

项目介绍

管理员角色包含以下功能: 管理员登录,修改个人资料,读者管理,图书管理,借还书管理,公告管理等功能。

用户角色包含以下功能: 用户登录与注册,修改个人资料,修改密码,查询图书,借还书管理,公告查询等功能。

环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;  5.数据库:MySql 5.7版本;

技术栈

  1. 后端:Spring+SpringMVC+Mybatis 2. 前端:HTML+CSS+JavaScript+jsp

使用说明

  1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行; 3. 将项目中application.yml配置文件中的数据库配置改为自己的配置; 4. 运行项目,输入localhost:8080/ 登录

用户图书管理控制层:

/**

  • @descriiption: 前台页面列表显示处理

*/

@Controller

@RequestMapping(“/user/ch”)

public class UserBookController {

// 注入

@Autowired

private LibraryService libraryService;

@Autowired

private LibraryCategoryService libraryCategoryService;

@Autowired

private CommentService commentService;

@Autowired

private TbOrderMapper orderMapper;

@Autowired

private TbRecordMapper recordMapper;

@Value(“${LOGIN_USER}”)

private String LOGIN_USER; // 当前登录用户的 session 存储 属性名

@RequestMapping(“/user_bookList”)

public String toLibraryListByCid(TbLibraryQuery libraryQuery, PageCount pageCount, Model model, HttpSession session) {

if (libraryQuery == null || libraryQuery.getCateId() == null) {

libraryQuery = new TbLibraryQuery();

libraryQuery.setCateId((Integer) session.getAttribute(“currentCategory”));

// 根据 类目 id

// 若 当前 类目 为 父类目 则获取 其 下面 的 所有子类目

// 若 当前 类目 为 子类目 则获取 其 同级 类目

List categoryList = libraryCategoryService.getCategoryByCid(libraryQuery.getCateId());

// 获取当前类目信息

TbCategory currentCategory = libraryCategoryService.getCategoryById(libraryQuery.getCateId());

// 按照条件进行查询

PageCount libraryPageCount = libraryService.findLibraryByAll(libraryQuery, pageCount);

// model 将数据设置到域中

model.addAttribute(“subCategoryList”, categoryList);

model.addAttribute(“libraryPageCount”, libraryPageCount);

// 默认

if (currentCategory == null) {

currentCategory = new TbCategory();

currentCategory.setId(0);

session.setAttribute(“currentCategory”, currentCategory.getId());

return “/user/user_bookList”;

/**

  • 通过 图书 id 查询 图书详细信息

  • @param id

  • @return

*/

@RequestMapping(“/bookId”)

public String toBookInfo(int id, Model model) {

BookExt bookInfo = libraryService.getBookInfoById(id);

// 将 时间戳 进行转换

Long dateSS = bookInfo.getLibrary().getCreatedate();

SimpleDateFormat simpleDateFormat = new SimpleDateFormat(“yyyy-MM-dd”);

String formatDate = simpleDateFormat.format(new Date(dateSS * 1000));

bookInfo.setFormatDate(formatDate);

// 通过 图书id 获取 回复信息

List commentExts = commentService.findCommentByBookId(id);

// 将 查询的 图书信息 设置到 域 中

model.addAttribute(“bookInfo”, bookInfo);

// 将 回复信息 设置到 域 汇总

model.addAttribute(“commentExts”, commentExts);

return “/user/bookDetail”;

/**

  • 用于 借阅 图书 操作

  • @param session 用于 取 用户信息

  • @param order 用户借阅关联信息

  • @return

*/

@RequestMapping(“/jieyue_book”)

public String jieyueBook(HttpSession session, Model model, String oid, String kkid, TbOrder order) {

if (null != kkid) {

TbRecord tbRecord = recordMapper.selectByPrimaryKey(Integer.valueOf(kkid));

tbRecord.setReturnbook(2); //2代表挂失

recordMapper.updateByPrimaryKey(tbRecord);

model.addAttribute(“successMsg”, “图书挂失成功”);

return “errorMsg”;

if (null != oid) {

TbRecord tbOrder = recordMapper.selectByPrimaryKey(Integer.valueOf(oid));

// 插入数据

tbOrder.setBackdate(tbOrder.getBackdate() + 3 * 30 * 24 * 60 * 60);

recordMapper.updateByPrimaryKey(tbOrder);

model.addAttribute(“successMsg”, “续借三个月成功”);

return “errorMsg”;

// 获取 session 中的用户信息

ActiveUser activeUser = (ActiveUser) session.getAttribute(“activeUser”);

TbUser tbUser = new TbUser();

tbUser.setId(activeUser.getUserid());

order.setUserId(tbUser.getId());

// 插入数据

libraryService.jieyueBookById(order);

return “redirect:/user/ch/bookId.action?id=” + order.getBookId();

@RequestMapping(“/commitInfo”)

@ResponseBody

public String commitComment(HttpSession session, TbComment comment) {

// 获取 session 中的用户信息

ActiveUser activeUser = (ActiveUser) session.getAttribute(“activeUser”);

TbUser tbUser = new TbUser();

tbUser.setId(activeUser.getUserid());

comment.setUserId(tbUser.getId());

libraryService.addCommentInfo(comment);

return “ok”;

登录注册管理控制层:

/**

  • @desc 登录注册Controller

**/

@Controller

@RequestMapping(“/login”)

public class Login_LoginController {

@Autowired

private Login_loginValidation login_loginValidation;

@RequestMapping(“/login”)

public String login(Model model, HttpSession session, String user, String pwd, String passwd2, String tel, String authcode, String statu) throws Exception {

//提示信息

String msg;

//跳转页面

String url;

//登录

ActiveUser activeUser = new ActiveUser();

TbUser tbUser = new TbUser();

if (“1”.equals(statu)) {

activeUser = this.login_loginValidation.authenticat(user, pwd);

if (activeUser == null) {

msg = “用户名或密码错误!”;

url = “/login.action”;

model.addAttribute(“msg”, msg);

model.addAttribute(“url”, url);

return “user/error”;

session.setAttribute(“activeUser”, activeUser);

return “redirect:/user/userSystem.action”;

} else if (“2”.equals(statu)) { //注册

//获取生成的验证码

String validateCode = (String) session.getAttribute(“randomCode”);

//判断用户名或密码是否为空

if (“”.equals(user) || user == null || “”.equals(pwd) || pwd == null) {

msg = “用户名或密码不能为空!”;

url = “/login.action”;

model.addAttribute(“msg”, msg);

model.addAttribute(“url”, url);

//判断两次密码是否不一致

if (!pwd.equals(passwd2)) {

msg = “您输入的两次密码不一致!”;

url = “/login.action”;

model.addAttribute(“msg”, msg);

model.addAttribute(“url”, url);

//判断手机号是否为空

if (!“”.equals(tel) || tel == null) {

msg = “手机号不能为空!”;

url = “/login.action”;

model.addAttribute(“msg”, msg);

model.addAttribute(“url”, url);

//判断验证码是否错误

if (!validateCode.equals(authcode)) {

msg = “您输入的验证码错误!”;

url = “/login.action”;

model.addAttribute(“msg”, msg);

model.addAttribute(“url”, url);

return “user/error”;

//如果都正确,注册用户

tbUser.setUsername(user);

tbUser.setPassword(pwd);

tbUser.setTelnum(tel);

long nowTime = System.currentTimeMillis() / 1000;

tbUser.setRegisterdate(nowTime);

int result = this.login_loginValidation.addUser(tbUser);

//判断是否注册成功

if (0 == result) {

msg = “注册失败,用户名已存在!”;

url = “/login.action”;

model.addAttribute(“msg”, msg);

model.addAttribute(“url”, url);

return “user/error”;

//注册成功,将用户名放入seesion中

tbUser = this.login_loginValidation.findUserByUserName(user);

activeUser.setUserid(tbUser.getId());

activeUser.setUsername(tbUser.getUsername());

activeUser.setHeadImg(tbUser.getHeadimg());

session.setAttribute(“activeUser”, activeUser);

msg = “注册成功!正在为您登录,请稍候…”;

url = “/user/userSystem.action”;

model.addAttribute(“msg”, msg);

model.addAttribute(“url”, url);

return “user/error”;

} else {

msg = “参数错误!”;

url = “/login.action”;

model.addAttribute(“msg”, msg);

model.addAttribute(“url”, url);

return “user/error”;

//账号退出登录

@RequestMapping(“/logout”)

public String logout(HttpSession session) throws Exception {

session.invalidate();

return “redirect:/login.action”;

// 管理员登录

@RequestMapping(“/adminlogin”)

public String adminlogin(Model model, HttpSession session, String adminuser, String adminpassword) throws Exception {

String msg;

String url;

//判断用户名为空

if (“”.equals(adminuser) || adminuser == null || “”.equals(adminpassword) || adminpassword == null) {

msg = “用户名或密码不能为空!”;

url = “/admin.action”;

model.addAttribute(“msg”, msg);

model.addAttribute(“url”, url);

return “user/error”;

ActiveAdmin activeAdmin = this.login_loginValidation.authenticatAdmin(adminuser, adminpassword);

if (activeAdmin == null) {

msg = “用户名或密码错误!”;

url = “/admin.action”;

model.addAttribute(“msg”, msg);

model.addAttribute(“url”, url);

return “user/error”;

session.setAttribute(“activeAdmin”, activeAdmin);

return “redirect:/admin/admin.action”;

图书类别管理控制层:

/**

  • @descriiption: 图书类别处理

*/

@Controller

@RequestMapping(“/admin/ch/category”)

public class CategoryController {

//注入

@Autowired

private LibraryCategoryService libraryCategoryService;

/**

  • 添加 图书类目

  • @param category 图书类目信息

  • @param session 添加人

  • @return url

  • @author hiseico

*/

@RequestMapping(value = “/addCategory”, method = RequestMethod.POST)

public String addCategory(TbCategory category, HttpSession session, Model model) {

List categoryList = libraryCategoryService.getCategoryAll();

boolean is = false;

for (TbCategory tbCategory : categoryList) {

if (category.getCatname().equals(tbCategory.getCatname())) {

is = true;

break;

if (!is) {

// 添加 数据到 数据库,并 修改 父类目

libraryCategoryService.addBookCategory(category, session);

} else {

model.addAttribute(“errorMsg”, “类目已经存在”);

return “errorMsg”;

return “redirect:/admin/ch/loan_BookClassify.action”;

/**

  • 删除类目信息

  • @param id

  • @return

*/

@RequestMapping(value = “/delCategory”, method = RequestMethod.GET)

public String delCategory(int id) {

// 通过 类目id 删除数据

libraryCategoryService.delBookCategoryById(id);

return “redirect:/admin/ch/loan_BookClassify.action”;

/**

  • 修改 类目关系

  • @param category

  • @return

*/

@RequestMapping(value = “/updateCategory”, method = RequestMethod.POST)

public String updateCategory(TbCategory category) {

return “redirect:/admin/ch/loan_BookClassify.action”;

@RequestMapping(“/toUpdatePage”)

@ResponseBody

public TbCategory toUpdatePage(int id) {

return libraryCategoryService.getCategoryById(id);


基于javaweb的图书馆图书管理借阅书籍管理系统(java+ssm+jsp+html+mysql)相关推荐

  1. 基于javaweb的餐厅点餐收银管理系统(java+ssm+jsp+bootstrap+mysql)

    基于javaweb的餐厅点餐收银管理系统(java+ssm+jsp+bootstrap+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/ ...

  2. 基于javaweb的图书进销存管理系统(java+ssm+jsp+bootstrap+mysql)

    基于javaweb的图书进销存管理系统(java+ssm+jsp+bootstrap+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/m ...

  3. 基于javaweb的业主+物业相结合小区物业管理系统(java+ssm+jsp+mysql)

    基于javaweb的业主+物业相结合小区物业管理系统(java+ssm+jsp+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/myec ...

  4. Java项目:SSM图书馆图书管理借阅书籍管理系统

    作者主页:夜未央5788 简介:Java领域优质创作者.Java项目.学习资料.技术互助 文末获取源码 项目介绍 本项目包含管理员与用户两种角色: 管理员角色包含以下功能: 管理员登录,修改个人资料, ...

  5. Java项目:图书进销存管理系统(java+SSM+JSP+bootstrap+Mysql)

    源码获取:俺的博客首页 "资源" 里下载! 项目介绍 本系统是基于SSM和bootstrap进行开发的项目.主要也是为了完成学校的学习任务,整体可能没有那么完美,练练手倒还行. 该 ...

  6. 基于javaweb的自习室图书馆座位预约管理系统(java+ssm+jsp+easyui+mysql)

    基于javaweb的自习室图书馆座位预约管理系统(java+ssm+jsp+easyui+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea ...

  7. 基于javaweb的在线车队货车管理系统(java+ssm+jsp+bootstrap+mysql)

    基于javaweb的在线车队货车管理系统(java+ssm+jsp+bootstrap+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/ ...

  8. 基于javaweb的高校教职工差旅报销管理系统(java+ssm+jsp+html+mysql)

    基于javaweb的高校教职工差旅报销管理系统(java+ssm+jsp+html+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/my ...

  9. 基于javaweb的中药药方管理系统(java+ssm+jsp+bootstrap+mysql)

    基于javaweb的中药药方管理系统(java+ssm+jsp+bootstrap+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/my ...

最新文章

  1. HDU - 2586 How far away ?(LCA)
  2. Leet Code OJ 20. Valid Parentheses [Difficulty: Easy]
  3. 【无取巧解法,易于理解!】剑指 Offer 26. 树的子结构
  4. jQuery 图片轮流展示效果
  5. 数据结构期末复习(に)--链式栈定义及使用
  6. 客户组网服务案列_山西seo关键词排名优化案列
  7. 苹果第二代自研M系列芯片MacBook Pro有望在未来几周上市
  8. 插入,冒泡,选择,快速,归并,堆排序,java 泛型实现
  9. JZOJ.5274【NOIP2017模拟8.14】数组
  10. java 结果用长整数型表示_java 编程 输入正整数n,计算n!结果用长整型数表示
  11. 微型计算机断电后信息将会丢失,2011年计算机基础知识精选部分及答案三
  12. spring 常用注解以分类
  13. HAR with Python WebDriver and BrowserMob Proxy
  14. mtk2503 GPS/操作系统/主板设计方式资料大全
  15. 大数据开发基础入门与项目实战(一)Java SE之4.方法和封装
  16. 鹏业安装算量软件支架计算
  17. LeetCode - 加一
  18. RTMP(2):Chunk 和 Message
  19. 修改webbrower中浏览器版本
  20. PB UpperBound()方法

热门文章

  1. python r语言培训_R语言学习第一课
  2. Chocolatey 食用说明
  3. MAVROS started. MY ID 1.240, TARGET ID 1.1
  4. 蔡吴失效准则matlab编程,蔡吴张量准则.ppt
  5. 华为HG522无线路由猫破解开启路由功能
  6. mysql pmt函数_mysql主从复制
  7. 4个基本不等式的公式高中_高中4个基本不等式的公式
  8. Java如何实现截取字符串
  9. Thread的interrupt()方法排雷
  10. java面试项目车辆管理_基于jsp的车辆管理系统-JavaEE实现车辆管理系统 - java项目源码...