基于javaweb+mysql的ssm+maven情缘图书馆管理系统(java+ssm+tomcat+maven+mysql)
运行环境
Java≥8、MySQL≥5.7、Tomcat≥8
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb+mysql的SSM+Maven情缘图书馆管理系统(java+ssm+tomcat+maven+mysql)
主要功能包括:
图书编目管理:图书编目、编目维护;
图书信息管理:图书录入、图书信息;
图书借阅管理:借阅图书、借阅信息、归还、续借;
读者管理:办证、读者信息、读者类别、证件操作;
系统管理:权限信息、用户权限;
软件架构
- SSM+Tomcat8.5+Maven3.6.3+JDK1.8+MySQL5.7
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);
// 将 时间戳 进行转换
public class UserBookController {
// 注入
@Autowired
private LibraryService libraryService;
@Autowired
private LibraryCategoryService libraryCategoryService;
@Autowired
private CommentService commentService;
@Autowired
private TbOrderMapper orderMapper;
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
@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<TbCategory> categoryList = libraryCategoryService.getCategoryByCid(libraryQuery.getCateId());
// 获取 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) {
String formatDate = simpleDateFormat.format(new Date(dateSS * 1000));
bookInfo.setFormatDate(formatDate);
// 通过 图书id 获取 回复信息
List<CommentExt> commentExts = commentService.findCommentByBookId(id);
// 将 查询的 图书信息 设置到 域 中
model.addAttribute("bookInfo", bookInfo);
// 将 回复信息 设置到 域 汇总
model.addAttribute("commentExts", commentExts);
return "/user/bookDetail";
/**
//注册成功,将用户名放入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 {
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";
//账号退出登录
@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;
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";
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)) { //注册
//获取生成的验证码
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<CommentExt> commentExts = commentService.findCommentByBookId(id);
// 将 查询的 图书信息 设置到 域 中
model.addAttribute("bookInfo", bookInfo);
// 将 回复信息 设置到 域 汇总
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";
/**
* 删除类目信息
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);
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);
* @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<CommentExt> commentExts = commentService.findCommentByBookId(id);
// 将 查询的 图书信息 设置到 域 中
// 将 查询的 图书信息 设置到 域 中
model.addAttribute("bookInfo", bookInfo);
// 将 回复信息 设置到 域 汇总
model.addAttribute("commentExts", commentExts);
return "/user/bookDetail";
/**
* 用于 借阅 图书 操作
* @param session 用于 取 用户信息
* @param order 用户借阅关联信息
* @return
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";