项目简介
本项目是一个基于SSM(Spring+SpringMVC+MyBatis)框架搭建的学生信息管理系统,实现了对学生、用户等信息的增删改查功能,以及登录、分页等功能。本项目采用了三层架构,分为entity层、service层、dao层和controller层,使用了Maven进行项目管理,使用了MySQL作为数据库。
项目功能
本项目主要有以下几个功能模块:
登录模块:用户可以输入用户名和密码进行登录,如果用户名或密码错误,会提示相应的错误信息。
学生管理模块:管理员可以对学生进行增删改查操作,可以根据学号或姓名或所属班级进行模糊查询,可以批量删除学生,可以修改学生的姓名、性别、年龄。
项目结构
项目技术
本项目主要使用了以下技术:
SSM框架:使用Spring作为容器管理各个组件,使用SpringMVC处理请求转发和视图渲染,使用MyBatis作为持久层框架操作数据库。
Maven:使用Maven作为项目管理工具,管理项目的依赖和构建。
MySQL:使用MySQL作为关系型数据库存储数据。
JSP+Servlet+JSTL+EL:使用JSP作为视图层技术展示页面,使用Servlet作为控制器接收请求和响应结果,使用JSTL和EL标签简化页面编写。
PageHelper:使用PageHelper插件实现分页功能。
Spring事务管理:使用Spring注解式事务管理实现事务控制。
SpringMVC拦截器:使用SpringMVC拦截器实现用户登录状态的判断和拦截。
SpringMVC全局异常处理:使用SpringMVC的@ControllerAdvice注解实现全局异常处理。
项目截图
以下是本项目的部分截图:
登录页面
学生管理页面
添加页面
修改页面
项目源码
部分源码:
package com.stu.controller;import com.stu.entity.Student;import com.stu.service.StudentService;import com.github.pagehelper.PageHelper;import com.github.pagehelper.PageInfo;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 java.util.HashMap;import java.util.List;import java.util.Map;@Controller // 这个注解表示这个类是一个控制器public class StudentController {@Autowired // 这个注解将StudentService对象注入到这个类中private StudentService studentService;//列表@RequestMapping("/list") // 这个注解将/list URL映射到这个方法public String list(Model model, @RequestParam(defaultValue = "1")Integer pageNum, @RequestParam(defaultValue = "5")Integer pageSize, String name, String sex, Integer age){HashMap map = new HashMap(); // 创建一个map来存储查询参数map.put("name",name); // 将name参数放入map中map.put("sex",sex); // 将sex参数放入map中map.put("age",age); // 将age参数放入map中map.put("pageSize",pageSize); // 将pageSize参数放入map中PageHelper.startPage(pageNum,pageSize); // 使用PageHelper来设置分页信息List
select * from student where 1=1and name like concat('%',#{name},'%')and sex = #{sex}and age = #{age}DELETE from student where num in(${ids})INSERT INTO `student`.`student`(`num`, `name`, `sex`, `age`) VALUES(0, #{name}, #{sex}, #{age});update student set name=#{name},sex=#{sex},age=#{age} where num=#{num}select * from student where num=#{num}
学生列表 function fy(pageNum) {$("[name='pageNum']").val(pageNum)$("form").submit()}function qx() {$(":checkbox").each(function () {this.checked=true})}function qbx() {$(":checkbox").each(function () {this.checked=false})}function fx() {$(":checkbox").each(function () {this.checked=!this.checked})}function ps() {let ids = '';$(":checkbox:checked").each(function () {ids+=","+this.value})ids=ids.substring(1)if (ids == '') {alert("请选择要删除的学生")return}let flag = confirm("确定要删除这些学生吗?")if (flag) {$.ajax({url:"delete",data:{ids:ids},type:"post",success:function (i) {if (i>0){location="list"}else {alert("删除失败")}}})}}function tj() {location="toadd"}function xg(num) {location="toupdate?num="+num}function sc(num) {let flag = confirm("确定要删除这个学生吗?")if (flag) {$.ajax({url:"delete",data:{ids:num},type:"post",success:function (i) {if (i>0){location="list"}else {alert("删除失败")}}})}}学生信息管理系统
姓名:性别:年龄:每页显示: 请选择 编号 姓名 性别 年龄 操作 ${a.num} ${a.name} ${a.sex} ${a.age} 1}"><c:if test="${pageInfo.pageNum 当前第${pageInfo.pageNum}页,共${pageInfo.pages}页
项目源码链接:UNABLEEEEE/StudentManagment-3.0-SSM- (github.com)