要离校了,使用SSM为学校开发后勤报修系统

简介: 要离校了,使用SSM为学校开发后勤报修系统

项目编号:BS-XX-006

本系统基于SSM实现后勤报修管理功能,前端采用DIV+CSS布局处理,采用异步请求AJAX发送请求和接受消息,数据库采用MYSQL,开发工具使用IDEA或ECLIPSE,提供基于MAVEN和非MAVEN两种版本供使用。

主要包含三个角色:

  1. 管理员角色:admin /  123456  主要可以管理用户信息,报修分配维修人员,发布公告,维修类型管理,个人资料修改等功能
  2. 普通用户:loguser / 123456  主要可以进行宿舍问题报修,查询报修记录,对报修结果进行评价,查看公告,修改个人资料等功能
  3. 维护人员:repair / 123456  主要可以查看分配的维护记录,对维护的结果进行处理,维护个人记录等相关功能

部分功能展示如下:

一,管理员登陆


  1. 报修系统首页:可以根据时间和状态进行搜索报修记录

image.png

2.  用户登陆注册

image.png

image.png

3.维护分类管理

image.png

4.发布公告

image.png

5.用户管理

image.png

6,管理分配报修单

image.png

7,个人资料修改

image.png

二,普通用户登陆


  1. 新增报修

image.png

  1. 查看自己报修历史并修改报修单

image.png

3.查看报修信息和公告信息等操作

image.png

4,对维护结果进行评分操作

image.png

三,维护人员登陆

  1. 查看维修记录并修改报修状态

image.png

2.修改个人资料

image.png

本系统功能完整,运行无误,界面简洁大方,适合做毕业设计或课程设计使用。

部分核心代码:

package com.logistics.controller;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
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.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
import com.logistics.service.IndexService;
import com.logistics.common.utils.exception.ServiceException;
import com.logistics.common.utils.response.Res;
@Controller
@RequestMapping("/index")
public class IndexController {
  @Autowired
  private IndexService indexService;
  @ResponseBody
  @RequestMapping("/getIndexInfo")
  public ModelAndView addPlacard(@RequestParam(value = "title", required = false, defaultValue = "") String title,
      @RequestParam(value = "status", required = false, defaultValue = "") String status,
      @RequestParam(value = "timeRange", required = false, defaultValue = "") String timeRange,
      @RequestParam(value = "pageNo", required = false, defaultValue = "") Integer pageNo,
      @RequestParam(value = "pageSize", required = false, defaultValue = "") Integer pageSize,
      HttpServletRequest request, HttpServletResponse response) {
    Res res = new Res();
    try {
      res = indexService.getIndexInfo();
    } catch (ServiceException e) {
      e.printStackTrace();
      res.addError(Res.MESSAGE_NAME_ERROR, e.getMessage());
    }
    return res.toView(response);
  }
}
package com.logistics.controller;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
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.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
import com.logistics.persistence.model.User;
import com.logistics.service.UserService;
import com.logistics.common.utils.exception.ServiceException;
import com.logistics.common.utils.response.Res;
@Controller
@RequestMapping("/user")
public class UserController {
  @Autowired
  private UserService userService;
  /**
   * 用户登录接口
   * 
   * @param userName
   * @param password
   * @param request
   * @param response
   * @return
   */
  @ResponseBody
  @RequestMapping("/login")
  public ModelAndView login(@RequestParam(value = "userName", required = false) String userName,
      @RequestParam(value = "password", required = false) String password,
      @RequestParam(value = "rememberMe", required = false) String rememberMe,
      @RequestParam(value = "directPage", required = false) String directPage, 
      HttpServletRequest request,HttpServletResponse response) {
    Res res = new Res();
    try {
      res = userService.login(userName, password, rememberMe, request, response);
    } catch (ServiceException e) {
        e.printStackTrace();
        res.addError(Res.MESSAGE_NAME_ERROR, e.getMessage());
    }
    return res.toView(response);
  }
  /**
   * 判断是否登录
   * @param directPage
   * @param request
   * @param response
   * @return
   */
  @ResponseBody
  @RequestMapping("/checkLogin")
  public ModelAndView isLogin(
      @RequestParam(value = "directPage", required = false) String directPage, 
      HttpServletRequest request,HttpServletResponse response) {
    Res res = new Res();
    try {
      User user = userService.getUser(request, response);
      if(user==null){
        throw new ServiceException("未登录");
      }
      res.addRespose("isLogin", 1);
      res.addRespose("groupId", user.getGroupId());
    } catch (ServiceException e) {
        e.printStackTrace();
        res.addError(Res.MESSAGE_NAME_ERROR, e.getMessage());
    }
    return res.toView(response);
  }
  @ResponseBody
  @RequestMapping("/logout")
  public ModelAndView logout(
      @RequestParam(value = "directPage", required = false) String directPage, 
      HttpServletRequest request,HttpServletResponse response) {
    Res res = new Res();
    try {
      res = userService.logout(request, response);
    } catch (ServiceException e) {
        e.printStackTrace();
        res.addError(Res.MESSAGE_NAME_ERROR, e.getMessage());
    }
    return res.toView(response);
  }
  /**
   * 用户注册接口
   * @param userName
   * @param password
   * @param password2
   * @param request
   * @param response
   * @return
   */
  @ResponseBody
  @RequestMapping("/singIn")
  public ModelAndView singIn(
      @RequestParam(value = "userName", required = false) String userName,
      @RequestParam(value = "password", required = false) String password,
      @RequestParam(value = "password2", required = false) String password2,
      HttpServletRequest request,HttpServletResponse response) {
    Res res = new Res();
    try {
      res = userService.singIn(userName,password,password2, request, response);
    } catch (ServiceException e) {
        e.printStackTrace();
        res.addError(Res.MESSAGE_NAME_ERROR, e.getMessage());
    }
    return res.toView(response);
  }
  /**
   * 修改密码
   * @param password
   * @param password2
   * @param request
   * @param response
   * @return
   */
  @ResponseBody
  @RequestMapping("/changePassword")
  public ModelAndView changePassword(
      @RequestParam(value = "password", required = false) String password,
      @RequestParam(value = "password2", required = false) String password2,
      HttpServletRequest request,HttpServletResponse response) {
    Res res = new Res();
    try {
      Long userId = userService.getUser(request, response).getUsrId();
      res = userService.changePassword(userId,password,password2);
    } catch (ServiceException e) {
        e.printStackTrace();
        res.addError(Res.MESSAGE_NAME_ERROR, e.getMessage());
    }
    return res.toView(response);
  }
  /**
   * 获取维修人员列表
   * @param request
   * @param response
   * @return
   */
  @ResponseBody
  @RequestMapping("/getRepairManList")
  public ModelAndView getRepairManList(
      HttpServletRequest request,HttpServletResponse response) {
    Res res = new Res();
    try {
      res = userService.getRepairManList();
    } catch (ServiceException e) {
        e.printStackTrace();
        res.addError(Res.MESSAGE_NAME_ERROR, e.getMessage());
    }
    return res.toView(response);
  }
  /**
   * 
   * @param request
   * @param response
   * @return
   */
  @ResponseBody
  @RequestMapping("/getAllUserList")
  public ModelAndView getAllUserList(
      HttpServletRequest request,HttpServletResponse response) {
    Res res = new Res();
    try {
      res = userService.getAllUserList();
    } catch (ServiceException e) {
        e.printStackTrace();
        res.addError(Res.MESSAGE_NAME_ERROR, e.getMessage());
    }
    return res.toView(response);
  }
  @ResponseBody
  @RequestMapping("/addUser")
  public ModelAndView addUser(
      @RequestParam(value = "userName", required = false) String userName,
      @RequestParam(value = "password", required = false) String password,
      @RequestParam(value = "usrMobile", required = false) String usrMobile,
      @RequestParam(value = "address", required = false) String address,
      @RequestParam(value = "groupId", required = false) String groupId,
      HttpServletRequest request,HttpServletResponse response) {
    Res res = new Res();
    try {
      res = userService.addUser(userName,password, usrMobile, groupId,address);
    } catch (ServiceException e) {
        e.printStackTrace();
        res.addError(Res.MESSAGE_NAME_ERROR, e.getMessage());
    }
    return res.toView(response);
  }
  @ResponseBody
  @RequestMapping("/removeUser")
  public ModelAndView removeUser(
      @RequestParam(value = "userId", required = false) String userId,
      HttpServletRequest request,HttpServletResponse response) {
    Res res = new Res();
    try {
      res = userService.removeUser(userId);
    } catch (ServiceException e) {
        e.printStackTrace();
        res.addError(Res.MESSAGE_NAME_ERROR, e.getMessage());
    }
    return res.toView(response);
  }
}
package com.logistics.controller;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
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.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
import com.logistics.persistence.model.User;
import com.logistics.service.UserService;
import com.logistics.common.utils.exception.ServiceException;
import com.logistics.common.utils.response.Res;
@Controller
@RequestMapping("/user")
public class UserController {
  @Autowired
  private UserService userService;
  /**
   * 用户登录接口
   * 
   * @param userName
   * @param password
   * @param request
   * @param response
   * @return
   */
  @ResponseBody
  @RequestMapping("/login")
  public ModelAndView login(@RequestParam(value = "userName", required = false) String userName,
      @RequestParam(value = "password", required = false) String password,
      @RequestParam(value = "rememberMe", required = false) String rememberMe,
      @RequestParam(value = "directPage", required = false) String directPage, 
      HttpServletRequest request,HttpServletResponse response) {
    Res res = new Res();
    try {
      res = userService.login(userName, password, rememberMe, request, response);
    } catch (ServiceException e) {
        e.printStackTrace();
        res.addError(Res.MESSAGE_NAME_ERROR, e.getMessage());
    }
    return res.toView(response);
  }
  /**
   * 判断是否登录
   * @param directPage
   * @param request
   * @param response
   * @return
   */
  @ResponseBody
  @RequestMapping("/checkLogin")
  public ModelAndView isLogin(
      @RequestParam(value = "directPage", required = false) String directPage, 
      HttpServletRequest request,HttpServletResponse response) {
    Res res = new Res();
    try {
      User user = userService.getUser(request, response);
      if(user==null){
        throw new ServiceException("未登录");
      }
      res.addRespose("isLogin", 1);
      res.addRespose("groupId", user.getGroupId());
    } catch (ServiceException e) {
        e.printStackTrace();
        res.addError(Res.MESSAGE_NAME_ERROR, e.getMessage());
    }
    return res.toView(response);
  }
  @ResponseBody
  @RequestMapping("/logout")
  public ModelAndView logout(
      @RequestParam(value = "directPage", required = false) String directPage, 
      HttpServletRequest request,HttpServletResponse response) {
    Res res = new Res();
    try {
      res = userService.logout(request, response);
    } catch (ServiceException e) {
        e.printStackTrace();
        res.addError(Res.MESSAGE_NAME_ERROR, e.getMessage());
    }
    return res.toView(response);
  }
  /**
   * 用户注册接口
   * @param userName
   * @param password
   * @param password2
   * @param request
   * @param response
   * @return
   */
  @ResponseBody
  @RequestMapping("/singIn")
  public ModelAndView singIn(
      @RequestParam(value = "userName", required = false) String userName,
      @RequestParam(value = "password", required = false) String password,
      @RequestParam(value = "password2", required = false) String password2,
      HttpServletRequest request,HttpServletResponse response) {
    Res res = new Res();
    try {
      res = userService.singIn(userName,password,password2, request, response);
    } catch (ServiceException e) {
        e.printStackTrace();
        res.addError(Res.MESSAGE_NAME_ERROR, e.getMessage());
    }
    return res.toView(response);
  }
  /**
   * 修改密码
   * @param password
   * @param password2
   * @param request
   * @param response
   * @return
   */
  @ResponseBody
  @RequestMapping("/changePassword")
  public ModelAndView changePassword(
      @RequestParam(value = "password", required = false) String password,
      @RequestParam(value = "password2", required = false) String password2,
      HttpServletRequest request,HttpServletResponse response) {
    Res res = new Res();
    try {
      Long userId = userService.getUser(request, response).getUsrId();
      res = userService.changePassword(userId,password,password2);
    } catch (ServiceException e) {
        e.printStackTrace();
        res.addError(Res.MESSAGE_NAME_ERROR, e.getMessage());
    }
    return res.toView(response);
  }
  /**
   * 获取维修人员列表
   * @param request
   * @param response
   * @return
   */
  @ResponseBody
  @RequestMapping("/getRepairManList")
  public ModelAndView getRepairManList(
      HttpServletRequest request,HttpServletResponse response) {
    Res res = new Res();
    try {
      res = userService.getRepairManList();
    } catch (ServiceException e) {
        e.printStackTrace();
        res.addError(Res.MESSAGE_NAME_ERROR, e.getMessage());
    }
    return res.toView(response);
  }
  /**
   * 
   * @param request
   * @param response
   * @return
   */
  @ResponseBody
  @RequestMapping("/getAllUserList")
  public ModelAndView getAllUserList(
      HttpServletRequest request,HttpServletResponse response) {
    Res res = new Res();
    try {
      res = userService.getAllUserList();
    } catch (ServiceException e) {
        e.printStackTrace();
        res.addError(Res.MESSAGE_NAME_ERROR, e.getMessage());
    }
    return res.toView(response);
  }
  @ResponseBody
  @RequestMapping("/addUser")
  public ModelAndView addUser(
      @RequestParam(value = "userName", required = false) String userName,
      @RequestParam(value = "password", required = false) String password,
      @RequestParam(value = "usrMobile", required = false) String usrMobile,
      @RequestParam(value = "address", required = false) String address,
      @RequestParam(value = "groupId", required = false) String groupId,
      HttpServletRequest request,HttpServletResponse response) {
    Res res = new Res();
    try {
      res = userService.addUser(userName,password, usrMobile, groupId,address);
    } catch (ServiceException e) {
        e.printStackTrace();
        res.addError(Res.MESSAGE_NAME_ERROR, e.getMessage());
    }
    return res.toView(response);
  }
  @ResponseBody
  @RequestMapping("/removeUser")
  public ModelAndView removeUser(
      @RequestParam(value = "userId", required = false) String userId,
      HttpServletRequest request,HttpServletResponse response) {
    Res res = new Res();
    try {
      res = userService.removeUser(userId);
    } catch (ServiceException e) {
        e.printStackTrace();
        res.addError(Res.MESSAGE_NAME_ERROR, e.getMessage());
    }
    return res.toView(response);
  }
}
package com.logistics.controller;
import java.io.IOException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
import com.logistics.persistence.model.User;
import com.logistics.service.RepairOrderService;
import com.logistics.service.UserService;
import com.logistics.common.Page;
import com.logistics.common.utils.exception.ServiceException;
import com.logistics.common.utils.response.Res;
@Controller
@RequestMapping("/repairOrder")
public class RepairOrderController {
  @Autowired
  private RepairOrderService repairOrderService;
  @Autowired
  private UserService userService;
  /**
   * 添加维修单
   * 
   * @param title
   * @param des
   * @param phone
   * @param address
   * @param categoryId
   * @param request
   * @param response
   * @return
   */
  @ResponseBody
  @RequestMapping("/addOrder")
  public ModelAndView addOrder(@RequestParam(value = "title", required = false, defaultValue = "") String title,
      @RequestParam(value = "des", required = false, defaultValue = "") String des,
      @RequestParam(value = "phone", required = false, defaultValue = "") String phone,
      @RequestParam(value = "address", required = false, defaultValue = "") String address,
      @RequestParam(value = "categoryId", required = false, defaultValue = "") String categoryId,
      HttpServletRequest request, HttpServletResponse response) {
    Res res = new Res();
    try {
      User user = userService.getUser(request, response);
      res = repairOrderService.addOrder(title, des, phone, address, categoryId,user.getUsrId());
    } catch (ServiceException e) {
      e.printStackTrace();
      res.addError(Res.MESSAGE_NAME_ERROR, e.getMessage());
    }
    return res.toView(response);
  }
  @ResponseBody
  @RequestMapping("/getOrder")
  public ModelAndView getOrder(
      @RequestParam(value = "orderId", required = false, defaultValue = "") String orderId,
      HttpServletRequest request, HttpServletResponse response) {
    Res res = new Res();
    try {
      res = repairOrderService.getOrder(orderId);
    } catch (ServiceException e) {
      e.printStackTrace();
      res.addError(Res.MESSAGE_NAME_ERROR, e.getMessage());
    }
    return res.toView(response);
  }
  //确认完成
  @ResponseBody
  @RequestMapping("/completeOrder")
  public ModelAndView completeOrder(
      @RequestParam(value = "orderId", required = false, defaultValue = "") String orderId,
      HttpServletRequest request, HttpServletResponse response) {
    Res res = new Res();
    try {
      User user = userService.getUser(request, response);
      res = repairOrderService.completeOrder(orderId,user.getUsrId());
    } catch (ServiceException e) {
      e.printStackTrace();
      res.addError(Res.MESSAGE_NAME_ERROR, e.getMessage());
    }
    return res.toView(response);
  }
  /**
   * 修改维修单
   * 
   * @param orderId
   * @param title
   * @param des
   * @param phone
   * @param address
   * @param categoryId
   * @param request
   * @param response
   * @return
   */
  @ResponseBody
  @RequestMapping("/updateOrder")
  public ModelAndView updateOrder(
      @RequestParam(value = "orderId", required = false, defaultValue = "") String orderId,
      @RequestParam(value = "title", required = false, defaultValue = "") String title,
      @RequestParam(value = "des", required = false, defaultValue = "") String des,
      @RequestParam(value = "phone", required = false, defaultValue = "") String phone,
      @RequestParam(value = "address", required = false, defaultValue = "") String address,
      @RequestParam(value = "categoryId", required = false, defaultValue = "") String categoryId,
      HttpServletRequest request, HttpServletResponse response) {
    Res res = new Res();
    try {
      res = repairOrderService.updateOrder(orderId, title, des, phone, address, categoryId);
    } catch (ServiceException e) {
      e.printStackTrace();
      res.addError(Res.MESSAGE_NAME_ERROR, e.getMessage());
    }
    return res.toView(response);
  }
  /**
   * 查询所有维修单
   * 
   * @param name
   * @param model
   * @return
   */
  @ResponseBody
  @RequestMapping("/queryRepairOrderList")
  public ModelAndView queryRepairOrderList(
      @RequestParam(value = "title", required = false, defaultValue = "") String title,
      @RequestParam(value = "status", required = false, defaultValue = "") String status,
      @RequestParam(value = "timeRange", required = false, defaultValue = "") String timeRange,
      @RequestParam(value = "pageNo", required = false, defaultValue = "") Integer pageNo,
      @RequestParam(value = "pageSize", required = false, defaultValue = "") Integer pageSize,
      HttpServletRequest request, HttpServletResponse response) {
    Res res = new Res();
    try {
      Page page = new Page();
      page.setPageNo(pageNo == null ? 0 : pageNo);
      page.setPageSize(pageSize == null ? page.getPageSize() : pageSize);
      res = repairOrderService.queryRepairOrderList(title, status, timeRange, page);
    } catch (ServiceException e) {
      e.printStackTrace();
      res.addError(Res.MESSAGE_NAME_ERROR, e.getMessage());
    }
    return res.toView(response);
  }
  /**
   * 查询个人维修单
   * 
   * @param title
   * @param status
   * @param timeRange
   * @param pageNo
   * @param pageSize
   * @param request
   * @param response
   * @return
   */
  @ResponseBody
  @RequestMapping("/getMyRepairOrderList")
  public ModelAndView getMyRepairOrderList(HttpServletRequest request, HttpServletResponse response) {
    Res res = new Res();
    try {
      User user = userService.getUser(request, response);
      res = repairOrderService.getMyRepairOrderList(user);
    } catch (ServiceException e) {
      e.printStackTrace();
      res.addError(Res.MESSAGE_NAME_ERROR, e.getMessage());
    }
    return res.toView(response);
  }
  /**
   * 获取我维修的订单
   * @param request
   * @param response
   * @return
   */
  @ResponseBody
  @RequestMapping("/getMyTaskOrder")
  public ModelAndView getMyTaskOrder(HttpServletRequest request, HttpServletResponse response) {
    Res res = new Res();
    try {
      User user = userService.getUser(request, response);
      res = repairOrderService.getMyTaskOrder(user);
    } catch (ServiceException e) {
      e.printStackTrace();
      res.addError(Res.MESSAGE_NAME_ERROR, e.getMessage());
    }
    return res.toView(response);
  }
  /**
   * 评价订单
   * @param orderId
   * @param star
   * @param comment
   * @param request
   * @param response
   * @return
   */
  @ResponseBody
  @RequestMapping("/commentOrder")
  public ModelAndView commentOrder(
      @RequestParam(value = "orderId", required = false, defaultValue = "") String orderId,
      @RequestParam(value = "star", required = false, defaultValue = "") String star,
      @RequestParam(value = "comment", required = false, defaultValue = "") String comment,
      HttpServletRequest request, HttpServletResponse response) {
    Res res = new Res();
    try {
      User user = userService.getUser(request, response);
      res = repairOrderService.commentOrder(orderId,star,comment,user);
    } catch (ServiceException e) {
      e.printStackTrace();
      res.addError(Res.MESSAGE_NAME_ERROR, e.getMessage());
    }
    return res.toView(response);
  }
  /**
   * 测试接口
   * 
   * @param name
   * @param model
   * @param request
   * @param response
   * @return
   */
  @RequestMapping("/hello")
  public ModelAndView hello(@RequestParam(value = "name", required = false, defaultValue = "World") String name,
      Model model, HttpServletRequest request, HttpServletResponse response) {
    model.addAttribute("name", name);
    try {
      if (name == null) {
        name = "";
      }
      response.getWriter().write("<h1>Hello " + name + "</h1>");
    } catch (IOException e) {
    }
    return null;
  }
}
相关文章
|
3月前
|
Java 数据库连接 Maven
手把手教你如何搭建SSM框架、图书商城系统案例
这篇文章是关于如何搭建SSM框架以及实现一个图书商城系统的详细教程,包括了项目的配置文件整合、依赖管理、项目结构和运行效果展示,并提供了GitHub源码链接。
手把手教你如何搭建SSM框架、图书商城系统案例
|
14天前
|
前端开发 Oracle 关系型数据库
关于使用SSM+JSP开发时setter、getter隐式调用问题的小结
本文主要分享了在使用SSM+JSP进行网站开发时,因忽视setter、getter的隐式调用问题而导致的常见bug及其解决方法。详细介绍了setter和getter的隐式调用时机,并给出了具体示例,帮助开发者避免类似问题。
41 11
|
2月前
|
Java 应用服务中间件 数据库连接
ssm项目整合,简单的用户管理系统
文章介绍了一个使用SSM框架(Spring、SpringMVC、MyBatis)构建的简单用户管理系统的整合过程,包括项目搭建、数据库配置、各层代码实现以及视图展示。
ssm项目整合,简单的用户管理系统
|
2月前
|
XML Java 数据库连接
如何搭建SSM框架、图书商城系统
这是一份详尽的《Spring + SpringMVC + Mybatis 整合指南》,作者耗时良久整理出约五万字的内容,现已经全部笔记公开。此文档详细地介绍了如何搭建与整合SSM框架,具体步骤包括创建Maven项目、添加web骨架、配置pom文件以及整合Spring、SpringMVC和Mybatis等。无论是对初学者还是有一定基础的开发者来说,都是很好的学习资源。此外,作者还提供了项目源码的GitHub链接,方便读者实践。虽然当前主流推荐学习SpringBoot,但了解SSM框架仍然是不可或缺的基础。
36 0
|
3月前
|
SQL Java 应用服务中间件
使用SSM搭建图书商城管理系统(完整过程介绍、售后服务哈哈哈)
这篇文章是关于如何使用SSM框架搭建图书商城管理系统的教程,包括完整过程介绍、常见问题解答和售后服务,提供了项目地址、运行环境配置、效果图展示以及运行代码的步骤。
使用SSM搭建图书商城管理系统(完整过程介绍、售后服务哈哈哈)
|
5月前
|
搜索推荐 JavaScript Java
计算机Java项目|基于SSM的个性化商铺系统
计算机Java项目|基于SSM的个性化商铺系统
|
5月前
|
前端开发 JavaScript Java
计算机Java项目|SSM智能仓储系统
计算机Java项目|SSM智能仓储系统
|
4月前
|
存储 关系型数据库 测试技术
基于ssm+vue的校园驿站管理系统+(源码+部署说明+演示视频+源码介绍)(2)
基于ssm+vue的校园驿站管理系统+(源码+部署说明+演示视频+源码介绍)
67 1
|
5月前
|
前端开发
杨校老师之基于SSM开发的校园点餐配送系统
杨校老师之基于SSM开发的校园点餐配送系统
62 0
杨校老师之基于SSM开发的校园点餐配送系统
|
5月前
|
小程序 前端开发 测试技术
微信小程序|ssm基于微信小程序的高校课堂教学管理系统
微信小程序|ssm基于微信小程序的高校课堂教学管理系统