基于SSM架构实现学生信息管理系统

这篇具有很好参考价值的文章主要介绍了基于SSM架构实现学生信息管理系统。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

项目简介

本项目是一个基于SSM(Spring+SpringMVC+MyBatis)框架搭建的学生信息管理系统,实现了对学生、用户等信息的增删改查功能,以及登录、分页等功能。本项目采用了三层架构,分为entity层、service层、dao层和controller层,使用了Maven进行项目管理,使用了MySQL作为数据库。

项目功能

本项目主要有以下几个功能模块:

  • 登录模块:用户可以输入用户名和密码进行登录,如果用户名或密码错误,会提示相应的错误信息。

  • 学生管理模块:管理员可以对学生进行增删改查操作,可以根据学号或姓名或所属班级进行模糊查询,可以批量删除学生,可以修改学生的姓名、性别、年龄。

项目结构

学生管理系统java ssm框架,java,mvc,spring,css

项目技术

本项目主要使用了以下技术:

  • 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注解实现全局异常处理。

项目截图

以下是本项目的部分截图:

登录页面

学生管理系统java ssm框架,java,mvc,spring,css

学生管理页面

学生管理系统java ssm框架,java,mvc,spring,css

添加页面

学生管理系统java ssm框架,java,mvc,spring,css

修改页面

学生管理系统java ssm框架,java,mvc,spring,css

项目源码

部分源码:

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<Map> list = studentService.list(map); // 调用studentService来获取符合查询参数的学生列表
        PageInfo pageInfo = new PageInfo(list); // 创建一个PageInfo对象来存储分页信息和学生列表
        model.addAttribute("list", list); // 将学生列表添加到model中
        model.addAttribute("pageInfo", pageInfo); // 将pageInfo对象添加到model中
        model.addAttribute("map", map); // 将查询参数的map添加到model中
        return "/list"; // 返回要显示学生列表的视图的名称
    }

    //删除
    @ResponseBody // 这个注解表示这个方法返回一个JSON对象作为响应体
    @RequestMapping("/delete") // 这个注解将/delete URL映射到这个方法
    public Object delete(String ids){
        int i=studentService.delete(ids); // 调用studentService来删除给定id的学生
        return i; // 返回删除操作影响的行数
    }

    //点击按钮,跳转到添加页面
    @RequestMapping("/toadd") // 这个注解将/toadd URL映射到这个方法
    public String toadd(){
        return "add"; // 返回要显示添加新学生的表单的视图的名称
    }

    //添加
    @ResponseBody // 这个注解表示这个方法返回一个JSON对象作为响应体
    @RequestMapping("/add") // 这个注解将/add URL映射到这个方法
    public Object add(Student student){
        int i=studentService.add(student); // 调用studentService来添加一个新学生,使用给定的信息
        return i; // 返回插入操作影响的行数
    }

    //点击按钮,跳转到修改页面
    @RequestMapping("/toupdate") // 这个注解将/toupdate URL映射到这个方法
    public String toupdate(Integer num, Model model){
        Student student = studentService.getByNum(num); // 调用studentService来根据num属性获取一个学生
        model.addAttribute("student", student); // 将学生对象添加到model中
        return "update"; // 返回要显示更新已有学生的表单的视图的名称
    }

    //修改
    @ResponseBody // 这个注解表示这个方法返回一个JSON对象作为响应体
    @RequestMapping("/update") // 这个注解将/update URL映射到这个方法
    public Object update(Student student){
        int i=studentService.update(student); // 调用studentService来更新一个已有学生,使用给定的信息
        return i; // 返回更新操作影响的行数
    }

}
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">


<mapper namespace="com.stu.dao.StudentDao">

    <!--条件查询-->
    <select id="list" resultType="java.util.Map">
        select * from student where 1=1
        <if test="name != null and name != ''">
            and name like concat('%',#{name},'%')
        </if>
        <if test="sex != null and sex != ''">
            and sex = #{sex}
        </if>
        <if test="age != null">
            and age = #{age}
        </if>
    </select>
    <!--删除-->
    <delete id="delete">
        DELETE from student where num in(${ids})
    </delete>
    <!--添加-->
    <insert id="add">
        INSERT INTO `student`.`student`
            (`num`, `name`, `sex`, `age`) VALUES
            (0, #{name}, #{sex}, #{age});
    </insert>

    <!--修改-->
    <update id="update">
    update student set name=#{name},sex=#{sex},age=#{age} where num=#{num}
</update>

    <!--根据id查询-->
    <select id="getByNum" resultType="com.stu.entity.Student">
    select * from student where num=#{num}
</select>

</mapper>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>学生列表</title>
    <link rel="stylesheet" href="css/like.css">
    <script src="js/jquery-1.8.2.min.js"></script>
    <script type="text/javascript">
        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("删除失败")
                        }
                    }
                })
            }
        }
    </script>
</head>
<body>
<h1>学生信息管理系统</h1>
<table>
    <tr>
        <td colspan="100">
            <form action="list">
                <input type="hidden" name="pageNum">
                姓名:<input type="text" name="name" value="${map.name}">
                性别:<input type="text" name="sex" value="${map.sex}">
                年龄:<input type="text" name="age" value="${map.age}">
                每页显示:<input type="text" name="pageSize" value="${map.pageSize}">
                <input type="submit" value="查询">
                <input type="button" onclick="tj()" value="添加">
            </form>
        </td>
    </tr>
    <tr>
        <td>请选择</td>
        <td>编号</td>
        <td>姓名</td>
        <td>性别</td>
        <td>年龄</td>
        <td>操作</td>
    </tr>
    <c:forEach items="${list}" var="a">
        <tr>
            <td><input type="checkbox" value="${a.num}"></td>
            <td>${a.num}</td>
            <td>${a.name}</td>
            <td>${a.sex}</td>
            <td>${a.age}</td>
            <td><input type="button" onclick="xg(${a.num})" value="修改">
                <input type="button" onclick="sc(${a.num})" value="删除"></td>
        </tr>
    </c:forEach>
    <tr>
        <td colspan="100">

            <c:if test="${pageInfo.pageNum > 1}">
                <input type="button" value="首页" onclick="fy(1)">
                <input type="button" value="上一页" onclick="fy(${pageInfo.pageNum-1})">
            </c:if>

            <c:if test="${pageInfo.pageNum < pageInfo.pages}">
                <input type="button" value="下一页" onclick="fy(${pageInfo.pageNum+1})">
                <input type="button" value="尾页" onclick="fy(${pageInfo.pages})">
            </c:if>

        </td>
    </tr>
    <tr>
        <td colspan="100">
            <span>当前第${pageInfo.pageNum}页,共${pageInfo.pages}页</span>
        </td>
    </tr>
    <tr>
        <td colspan="100">
            <input type="button" value="全选" onclick="qx()">
            <input type="button" value="全不选" onclick="qbx()">
            <input type="button" value="反选" onclick="fx()">
            <input type="button" value="批量删除" onclick="ps()">
        </td>
    </tr>
</table>
</body>
</html>

项目源码链接:UNABLEEEEE/StudentManagment-3.0-SSM- (github.com)文章来源地址https://www.toymoban.com/news/detail-773156.html

到了这里,关于基于SSM架构实现学生信息管理系统的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ssm726基于web的学生就业管理系统的设计与实现+vue

    文章仅展示部分内容,详细的毕设论文和演示视频源代码可以私信我的扣扣,        毕 业 设 计(论 文)    题目: 学生就业管理系统的 设计与实现 如今社会上各行各业,都喜欢用自己行业的专属软件工作,互联网发展到这个时候,人们已经发现离不开了互联网。新技

    2024年02月20日
    浏览(42)
  • 基于C++实现的学生信息管理系统

    点击获取(源码+课程设计报告文档+截图) 学生信息管理系统是针对学校人事处的大量业务处理工作而开发的管理软件,主要用于学校学生信息管理,总体任务是实现学生信息关系的系统化、科学化、规范化和自动化,其主要任务是用计算机对学生各种信息进行日常管理,如

    2024年02月04日
    浏览(43)
  • python基于Tkinter实现学生信息管理系统

    1.添加学生成绩:管理员可以在系统中添加学生的成绩信息,包括学生姓名、学号、课程名称、成绩等。 2.删除学生成绩:管理员可以根据学生的学号或者姓名删除学生的成绩信息。 3.修改学生成绩:管理员可以修改学生的成绩信息,包括学生姓名、学号、课程名称、成绩等

    2024年02月08日
    浏览(72)
  • 基于python的学生信息管理系统的设计与实现

    小白学python,做了一个基础小系统,给大家分享一下(欢迎大神指导) 目录 步骤 1.设计要求 2.设计步骤 (1)导入os模块,创建一个文件夹用于存储数据  (2)定义一个菜单函数 (3)实现学生信息的录入功能 (4)定义了一个save函数用于录入功能的调用 (5)查询功能的实现

    2024年02月09日
    浏览(60)
  • java毕业设计——基于JSP+sqlserver的学生信息管理系统设计与实现(毕业论文+程序源码)——学生信息管理系统

    大家好,今天给大家介绍基于JSP+sqlserver的学生信息管理系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦。需要下载开题报告PPT模板及论文答辩PPT模板等的小伙伴,可以进入我的博客主页查看左侧最下面栏目中的自助下载方法哦 文章目录: 随着学校规模的

    2024年02月04日
    浏览(67)
  • 基于Python guI的学生信息管理系统的设计与实现

            讲述的是一个使用Python GUI的学习资料管理工具。通过使用Python的Tkinter库和mysql数据库,这个工具可以方便地记录、检索、更新学习资料。本文详细描述了系统的架构设计和实现过程,并对系统进行了功能测试和性能测试。结果表明,该系统具有良好的用户界面和

    2024年02月03日
    浏览(40)
  • Java项目:基于SSM框架实现同城蔬菜配送管理系统(SSM+B/S架构+源码+数据库+毕业论文)

    本项目是一套ssm825基于SSM框架实现同城蔬菜配送管理系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Java学习者。 包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试,eclipse或idea 确保可以运行! 该系统功能

    2024年01月25日
    浏览(57)
  • 10.Java程序设计-基于SSM框架的微信小程序家教信息管理系统的设计与实现

    摘要是论文的开篇,用于简要概述研究的目的、方法、主要结果和结论。以下是一个简化的摘要示例,你可以根据实际情况进行修改和扩展: 摘要 随着社会的发展和教育需求的增长,家教服务作为一种个性化的学习方式受到了广泛关注。为了更好地满足家教市场的需求,本

    2024年02月03日
    浏览(58)
  • 基于java+springboot+vue实现的学生信息管理系统(文末源码+Lw+ppt)23-54

     摘  要 人类现已进入21世纪,科技日新月异,经济、信息等方面都取得了长足的进步,特别是信息网络技术的飞速发展,对政治、经济、军事、文化等方面都产生了很大的影响。 利用计算机网络的便利,开发一套基于java的大学生信息管理系统,将会给人们的生活带来更多的

    2024年04月16日
    浏览(43)
  • (解析+源码)基于JAVA Swing+MySQL实现学生信息管理系统(增、删、改、查)数据库/文件存储

    本文适合 有一定JAVA编程基础(听过一点课的同学) 的同学“食用”,源代码都在文末 源代码(点击跳转) ,第四部分是各个模块的实现,新建一个工程把下面代码添加进去,然后在数据库里按id-username-password和id-name-sex-telephone-number-birthday-note创建两个表,在Connect.java里面将us

    2024年02月04日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包