基于SSM实现学生管理系统
作者:ztq666666 发布时间:2023-11-24 18:17:39
标签:SSM,管理系统
本文实例为大家分享了SSM实现学生管理系统的具体代码,供大家参考,具体内容如下
概述
基于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<Clazz> 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<String, Object> getList(
@RequestParam(value="name",required=false,defaultValue="") String name,
@RequestParam(value="clazzId",required=false) Long clazzId,
HttpServletRequest request,
Page page
){
Map<String, Object> ret = new HashMap<String, Object>();
Map<String, Object> queryMap = new HashMap<String, Object>();
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<String, String> edit(Student student){
Map<String, String> ret = new HashMap<String, String>();
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<String, String> add(Student student){
Map<String, String> ret = new HashMap<String, String>();
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<String, String> delete(
@RequestParam(value="ids[]",required=true) Long[] ids
){
Map<String, String> ret = new HashMap<String, String>();
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<String, String> uploadPhoto(MultipartFile photo,
HttpServletRequest request,
HttpServletResponse response
) throws IOException{
Map<String, String> ret = new HashMap<String, String>();
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.2 管理
2.3 管理
2.4 管理
2.5 管理
来源:https://blog.csdn.net/qq_23034755/article/details/111146617


猜你喜欢
- 基于项目需求,想要实现Post消息推送,故采用HttpClient组件进行实现,相关代码如下(注:程序采用的httpclient和httpc
- 本文实例为大家分享了Android实现跟随手指画圆的具体代码,供大家参考,具体内容如下首先自己定义一个View子类:package com.
- spring schedule 动态配置执行时间之前saas平台实现动态修改定时任务的时间,都是通过xx-job这样的框架来实现,这样我们可
- 一、WebSocket简介WebSocket协议通过在客户端和服务端之间提供全双工通信来进行Web和服务器的交互功能。在WebSocket应
- 1.为什么需要动态内存分配关于这个问题,我们先看看我们之前是如何开辟内存的。int val = 20;//在栈空间上开辟四个字节char a
- public class BeanDefinitionHolder implements BeanMetadataElement { &nb
- 很多朋友在下载文件的时候,经常会发现网站提供了MD5校验码,其实这个MD5码的作用就是当你下载文件好了之后,拿你下载好的文件的MD5校验码,
- 比如:javascriptjavasejavaeejavame思路:定义一个计数器获取java第一次出现的位置从第一次出现位置后剩余的字符串
- 这篇文章主要介绍了Spring JDK * 实现过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要
- 前言尺子在客户端开发中有一定的应用场景,比如厘米尺、白板的画线尺、视频剪辑的时间尺。一般可以采用用户控件通过自绘的方式实现,但今天我要讲一个
- maven什么是mavenMaven 是一个项目管理工具,最主要的作用就是管理jar包,他可以把jar统一放到仓库中,项目直接引用即可,而不
- 问题情况:在使用 @TableId(type = IdType.AUTO)之后添加的id数字特别大原因:因为在第一次使用的时候没有加注解 所
- Java中四种访问权限总结一、Java中有四种访问权限, 其中三种有访问权限修饰符,分别为private、public、prot
- Java线程池的几种实现方法和区别介绍import java.text.DateFormat;import java.text.Simple
- 本文以实例形式简单讲述了C#对象为Null模式(Null Object Pattern),分享给大家供大家参考。具体实现方法如下:所谓的&q
- 延迟赋值主要有两点:1.一个参数可能或可能没被赋值.2.一个参数在一个函数中每次使用时可能被赋值.如下面的这种情况:int Add(int
- 导入依赖菜单大部分情况下不会出现变化,我们可以将其放入Redis 加快加载速度<dependency><groupId&g
- 一.背景项目中有个需求大体意思是,上传一个word模板,根据word模板合成word文件,再将word文件转为pdf。二.方案选择1.Spi
- 1.生成自己的注解(为了确定在哪些位置使用)/** * 关闭patch delete的model处理,否则会报错 */@Target({El
- 近几年移动互联网的高速发展,智能手机的使用用户呈现 * 性增长,手机终端上的App 种类繁多,大多数App 都需要与后台系统进行交互,交互的第