利用SSM框架怎么制作一个学生管理系统
创始人
2024-12-26 16:21:15
0次

概述

基于Spring + Spring MVC 的学生管理系统,使用Maven进行包管理。

主要代码

@RequestMapping("/student")
@Controller
public class StudentController {
 
 @Autowired
 private StudentService studentService;
 @Autowired
 private ClazzService clazzService;
 /**
 * 学生列表页
 * @param model
 * @return
 */
 @RequestMapping(value="/list",method=RequestMethod.GET)
 public ModelAndView list(ModelAndView model){
 model.setViewName("student/student_list");
 List clazzList = clazzService.findAll();
 model.addObject("clazzList",clazzList );
 model.addObject("clazzListJson",JSONArray.fromObject(clazzList));
 return model;
 }
 
 /**
 * 获取学生列表
 * @param name
 * @param page
 * @return
 */
 @RequestMapping(value="/get_list",method=RequestMethod.POST)
 @ResponseBody
 public Map getList(
 @RequestParam(value="name",required=false,defaultValue="") String name,
 @RequestParam(value="clazzId",required=false) Long clazzId,
 HttpServletRequest request,
 Page page
 ){
 Map ret = new HashMap();
 Map queryMap = new HashMap();
 queryMap.put("username", "%"+name+"%");
 Object attribute = request.getSession().getAttribute("userType");
 if("2".equals(attribute.toString())){
 //说明是学生
 Student loginedStudent = (Student)request.getSession().getAttribute("user");
 queryMap.put("username", "%"+loginedStudent.getUsername()+"%");
 }
 if(clazzId != null){
 queryMap.put("clazzId", clazzId);
 }
 queryMap.put("offset", page.getOffset());
 queryMap.put("pageSize", page.getRows());
 ret.put("rows", studentService.findList(queryMap));
 ret.put("total", studentService.getTotal(queryMap));
 return ret;
 }
 
 /**
 * 编辑学生信息
 * @param clazz
 * @return
 */
 @RequestMapping(value="/edit",method=RequestMethod.POST)
 @ResponseBody
 public Map edit(Student student){
 Map ret = new HashMap();
 if(StringUtils.isEmpty(student.getUsername())){
 ret.put("type", "error");
 ret.put("msg", "学生姓名不能为空!");
 return ret;
 }
 if(StringUtils.isEmpty(student.getPassword())){
 ret.put("type", "error");
 ret.put("msg", "学生登录密码不能为空!");
 return ret;
 }
 if(student.getClazzId() == null){
 ret.put("type", "error");
 ret.put("msg", "请选择所属班级!");
 return ret;
 }
 if(isExist(student.getUsername(), student.getId())){
 ret.put("type", "error");
 ret.put("msg", "该姓名已存在!");
 return ret;
 }
 student.setSn(StringUtil.generateSn("S", ""));
 if(studentService.edit(student) <= 0){
 ret.put("type", "error");
 ret.put("msg", "学生添加失败!");
 return ret;
 }
 ret.put("type", "success");
 ret.put("msg", "学生修改成功!");
 return ret;
 }
 
 
 /**
 * 添加学生信息
 * @param student
 * @return
 */
 @RequestMapping(value="/add",method=RequestMethod.POST)
 @ResponseBody
 public Map add(Student student){
 Map ret = new HashMap();
 if(StringUtils.isEmpty(student.getUsername())){
 ret.put("type", "error");
 ret.put("msg", "学生姓名不能为空!");
 return ret;
 }
 if(StringUtils.isEmpty(student.getPassword())){
 ret.put("type", "error");
 ret.put("msg", "学生登录密码不能为空!");
 return ret;
 }
 if(student.getClazzId() == null){
 ret.put("type", "error");
 ret.put("msg", "请选择所属班级!");
 return ret;
 }
 if(isExist(student.getUsername(), null)){
 ret.put("type", "error");
 ret.put("msg", "该姓名已存在!");
 return ret;
 }
 student.setSn(StringUtil.generateSn("S", ""));
 if(studentService.add(student) <= 0){
 ret.put("type", "error");
 ret.put("msg", "学生添加失败!");
 return ret;
 }
 ret.put("type", "success");
 ret.put("msg", "学生添加成功!");
 return ret;
 }
 
 /**
 * 删除学生信息
 * @param ids
 * @return
 */
 @RequestMapping(value="/delete",method=RequestMethod.POST)
 @ResponseBody
 public Map delete(
 @RequestParam(value="ids[]",required=true) Long[] ids
 ){
 Map ret = new HashMap();
 if(ids == null || ids.length == 0){
 ret.put("type", "error");
 ret.put("msg", "请选择要删除的数据!");
 return ret;
 }
 try {
 if(studentService.delete(StringUtil.joinString(Arrays.asList(ids), ",")) <= 0){
 ret.put("type", "error");
 ret.put("msg", "删除失败!");
 return ret;
 }
 } catch (Exception e) {
 // TODO: handle exception
 ret.put("type", "error");
 ret.put("msg", "该学生下存在其他信息,请勿冲动!");
 return ret;
 }
 ret.put("type", "success");
 ret.put("msg", "学生删除成功!");
 return ret;
 }
 
 /**
 * 上传用户头像图片
 * @param photo
 * @param request
 * @param response
 * @return
 * @throws IOException
 */
 @RequestMapping(value="/upload_photo",method=RequestMethod.POST)
 @ResponseBody
 public Map uploadPhoto(MultipartFile photo,
 HttpServletRequest request,
 HttpServletResponse response
 ) throws IOException{
 Map ret = new HashMap();
 if(photo == null){
 //文件没有选择
 ret.put("type", "error");
 ret.put("msg", "请选择文件!");
 return ret;
 }
 if(photo.getSize() > 10485760){
 //文件没有选择
 ret.put("type", "error");
 ret.put("msg", "文件大小超过10M,请上传小于10M的图片!");
 return ret;
 }
 String suffix = photo.getOriginalFilename().substring(photo.getOriginalFilename().lastIndexOf(".") + 1,photo.getOriginalFilename().length());
 if(!"jpg,png,gif,jpeg".contains(suffix.toLowerCase())){
 ret.put("type", "error");
 ret.put("msg", "文件格式不正确,请上传jpg,png,gif,jpeg格式的图片!");
 return ret;
 }
 String savePath = request.getServletContext().getRealPath("/") + "\\upload\\";
 System.out.println(savePath);
 File savePathFile = new File(savePath);
 if(!savePathFile.exists()){
 savePathFile.mkdir();//如果不存在,则创建一个文件夹upload
 }
 //把文件转存到这个文件夹下
 String filename = new Date().getTime() + "." + suffix;
 photo.transferTo(new File(savePath + filename ));
 ret.put("type", "success");
 ret.put("msg", "图片上传成功!");
 ret.put("src", request.getServletContext().getContextPath() + "/upload/" + filename);
 return ret;
 }
 
 private boolean isExist(String username,Long id){
 Student student = studentService.findByUserName(username);
 if(student != null){
 if(id == null){
 return true;
 }
 if(student.getId().longValue() != id.longValue()){
 return true;
 }
 }
 return false;
 }
}

运行配置

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

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...