基于javaweb+mysql的ssm+maven学生成绩管理系统(java+jsp+maven+ssm+mysql)

基于javaweb+mysql的ssm+maven学生成绩管理系统(java+jsp+maven+ssm+mysql)

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

学生成绩的增删改查管理

技术框架

JavaBean MVC JSP SSM(Spring SpringMVC MyBatis) Maven MySQL Bootstrap JavaScript

基于javaweb+mysql的SSM+Maven学生成绩管理系统(java+jsp+maven+ssm+mysql)

        List<Student> studentList = studentService.selectStudentAll(params);
        //分页对象
        PageInfo pageInfo = new PageInfo(studentList);
//  将分页信息放到域中
        model.addAttribute("par", params);
        model.addAttribute("pageInfo", pageInfo);

        return "list";  //视图解析器:  /jsp/list.jsp
    }

    //删除
    @RequestMapping("/deleteStudent/{id}")
    public String deleteStudent(@PathVariable int id) {
        //实现删除:调用service方法
        studentService.deleteStudent(id);
//  删除数据后,同时返回更新结果页面,使用重定向
        return "redirect:/selectStudentAll";
    }

    //修改一条:1、查询一条 ,并且展示到页面(根据id查询,select)
    //        2、编辑修改,提交保存  (update)
    //1,查询一条后,进入到编辑页面
    @RequestMapping("/updateStudentEdit/{id}")
    public String upadateEmpEdit(Model model, @PathVariable int id) {
        //实现查询一条
        Student student = studentService.updateStudentEdit(id);
        //查询的数据放到域中
        model.addAttribute("student", student);
        return "edit";
    }

    //2,编辑页面完成后,提交 执行修改
    @RequestMapping("/updateStudent")
    public String upadateStudent(Student student) {
        //实现修改
        studentService.upadateStudent(student);
        //修改完毕,重定向,更新结果页面
        return "redirect:/selectStudentAll";
    }

    //添加:1、进入添加页面,编辑
    @RequestMapping("/insertStudentEdit")
    public String insertStudentEdit() {
        //添加完毕,重定向更新结果页面
        return "add";
    }

    //2、提交添加请求,实现
    @RequestMapping("/insertStudent")
    public String insertStudent(Student student) {
        //执行添加,调用service添加方法-dao-持久化
    public Student() {
    }

    public Student(Integer id, String name, String classid, String teacher, Integer score) {
        this.id = id;
        this.name = name;
        this.classid = classid;
        this.teacher = teacher;
        this.score = score;
    }

    public Student(String name, String classid, String teacher, Integer score) {
        this.name = name;
        this.classid = classid;
        this.teacher = teacher;
        this.score = score;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getClassid() {
        return classid;
    }

    public void setClassid(String classid) {
        this.classid = classid;
    }

    private StudentService studentService;

    @RequestMapping(value = "/selectStudentAll")
    public String selectStudentAll(Model model, ParamsStu params) {
//  List<Emp> empList=empService.selectEmpAll();
        List<Student> studentList = studentService.selectStudentAll(params);
        //分页对象
        PageInfo pageInfo = new PageInfo(studentList);
//  将分页信息放到域中
        model.addAttribute("par", params);
        model.addAttribute("pageInfo", pageInfo);

        return "list";  //视图解析器:  /jsp/list.jsp
    }

    //删除
    @RequestMapping("/deleteStudent/{id}")
    public String deleteStudent(@PathVariable int id) {
        //实现删除:调用service方法
        studentService.deleteStudent(id);
//  删除数据后,同时返回更新结果页面,使用重定向
        return "redirect:/selectStudentAll";
    }

    //修改一条:1、查询一条 ,并且展示到页面(根据id查询,select)
    //        2、编辑修改,提交保存  (update)
    //1,查询一条后,进入到编辑页面
    @RequestMapping("/updateStudentEdit/{id}")
    public String upadateEmpEdit(Model model, @PathVariable int id) {
        //实现查询一条
        Student student = studentService.updateStudentEdit(id);
        //查询的数据放到域中
        model.addAttribute("student", student);
        return "edit";
    }

    //2,编辑页面完成后,提交 执行修改
    @RequestMapping("/updateStudent")
    public String upadateStudent(Student student) {
        //实现修改
        studentService.upadateStudent(student);
        //修改完毕,重定向,更新结果页面
        return "redirect:/selectStudentAll";
    }
    <div class="login">
        <div class="login-top">
            登录
        </div>
        <div class="login-center clearfix">
            <div class="login-center-img"><img src="img/name.png"/></div>
            <div class="login-center-input">
                <input type="text" id="username" name="username" value="" placeholder="用户名"
                       onfocus="this.placeholder=''" onblur="this.placeholder='用户名'"/>
            </div>
        </div>
        <br>
        <br>
        <br>
        <div class="login-center clearfix">
            <div class="login-center-img"><img src="img/password.png"/></div>
            <div class="login-center-input">
                <input type="password" id="password" name="password" value="" placeholder="密码"
                       onfocus="this.placeholder=''" onblur="this.placeholder='密码'"/>
            </div>
        </div>
        <br>
        <br>
        <br>
        <button type="submit" class="login-button">登陆</button>
    </div>
</form>
</body>
<script type="text/javascript">
    //提交之前进行检查,如果return false,则不允许提交
    function check() {
        //根据ID获取值
        var username = document.getElementById("username").value;
        var password = document.getElementById("password").value;
        if (username == "") {
            alert("用户名不能为空");
            return false;
        }
        if (password == "") {
            alert("密码不能为空");
            return false;
        }
        return true;
    }
    @Override
    public void insertStudent(Student student) {
        studentMapper.insertStudent(student);
    }

}

@Service
public class UserServiceImpl implements UserService {
    @Autowired
    private UserMapper userMapper;

    @Override
    public User get(String username, String password) {
        Map<String, Object> params = new HashMap<>();
        params.put("username", username);
        params.put("password", password);
        List<User> list = this.userMapper.findAllSplit(params);
        return list.isEmpty() ? null : list.get(0);
    }
}

public class User {
    private Integer id;
    private String username;
    private String password;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

        //添加完毕,重定向更新结果页面
        return "add";
    }

    //2、提交添加请求,实现
    @RequestMapping("/insertStudent")
    public String insertStudent(Student student) {
        //执行添加,调用service添加方法-dao-持久化
        studentService.insertStudent(student);
        //添加完毕,重定向更新结果页面
        return "redirect:/selectStudentAll";
    }

}

//分页工具类
public class ParamsStu {
    private int pageNum;   //当前页
    private int pageSize = 5;//每页条数

    //  条件查询
    private String name;
    private String classid;
    private String teacher;
    private Integer scoreFrom;
    private Integer scoreTo;
    private String subject;

    public int getPageNum() {
        return pageNum;
    }

    public void setPageNum(int pageNum) {
        this.pageNum = pageNum;
    }

    public int getPageSize() {
        return pageSize;
    }

    public void setPageSize(int pageSize) {
        this.pageSize = pageSize;
    }

    public String getName() {
        return name;

public interface UserMapper {

    List<User> findAllSplit(Map<String, Object> params);

}

public interface UserService {
    User get(String username, String password);
}
<%--
  Created by IntelliJ IDEA.
  User: EDZ
  Time: 11:28
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<html>
<head>
    <title>学生成绩管理系统</title>

    <script type="text/javascript"
            src="https://cdn.staticfile.org/twitter-bootstrap/3.3.4/js/bootstrap.min.js"></script>
    <link rel="stylesheet" type="text/css"
          href="https://cdn.staticfile.org/twitter-bootstrap/3.3.4/css/bootstrap.min.css">

</head>
<style type="text/css">
    td {
        text-align: center;
    }
</style>
<body>
<h1 align="center">学生成绩管理系统</h1>

}

public interface UserMapper {

    List<User> findAllSplit(Map<String, Object> params);

}

public interface UserService {
    User get(String username, String password);
}
<%--
  Created by IntelliJ IDEA.
  User: EDZ
  Time: 11:28
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<html>
<head>
    <title>学生成绩管理系统</title>

    <script type="text/javascript"
            src="https://cdn.staticfile.org/twitter-bootstrap/3.3.4/js/bootstrap.min.js"></script>
    <link rel="stylesheet" type="text/css"

@Controller
public class StuController {
    //查询所有
    @Autowired
    private StudentService studentService;

    @RequestMapping(value = "/selectStudentAll")
    public String selectStudentAll(Model model, ParamsStu params) {
//  List<Emp> empList=empService.selectEmpAll();
        List<Student> studentList = studentService.selectStudentAll(params);
        //分页对象
        PageInfo pageInfo = new PageInfo(studentList);
//  将分页信息放到域中
        model.addAttribute("par", params);
        model.addAttribute("pageInfo", pageInfo);

        return "list";  //视图解析器:  /jsp/list.jsp
    }

    //删除
    @RequestMapping("/deleteStudent/{id}")
    public String deleteStudent(@PathVariable int id) {
        //实现删除:调用service方法
        studentService.deleteStudent(id);
//  删除数据后,同时返回更新结果页面,使用重定向
        return "redirect:/selectStudentAll";
    }

    //修改一条:1、查询一条 ,并且展示到页面(根据id查询,select)
    //        2、编辑修改,提交保存  (update)
    //1,查询一条后,进入到编辑页面
    @RequestMapping("/updateStudentEdit/{id}")
    public String upadateEmpEdit(Model model, @PathVariable int id) {
        //实现查询一条
        Student student = studentService.updateStudentEdit(id);
        //查询的数据放到域中
        model.addAttribute("student", student);
        return "edit";
    }

    //2,编辑页面完成后,提交 执行修改
    @RequestMapping("/updateStudent")
    public String upadateStudent(Student student) {
        //实现修改
        studentService.upadateStudent(student);
        //修改完毕,重定向,更新结果页面
        return "redirect:/selectStudentAll";
    }

 //查询所有
 public List<Student> selectStudentAll(ParamsStu params);

 void deleteStudent(int id);

 Student updateStudentEdit(int id);

 void upadateStudent(Student student);

 void insertStudent(Student student);

}

public interface UserMapper {

    List<User> findAllSplit(Map<String, Object> params);

}

public interface UserService {
    User get(String username, String password);
}
<%--
  Created by IntelliJ IDEA.
  User: EDZ
  Time: 11:28
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<html>
<head>
    <title>学生成绩管理系统</title>

  User: EDZ
  Time: 11:28
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<html>
<head>
    <title>学生成绩管理系统</title>

    <script type="text/javascript"
            src="https://cdn.staticfile.org/twitter-bootstrap/3.3.4/js/bootstrap.min.js"></script>
    <link rel="stylesheet" type="text/css"
          href="https://cdn.staticfile.org/twitter-bootstrap/3.3.4/css/bootstrap.min.css">

</head>
<style type="text/css">
    td {
        text-align: center;
    }
</style>
<body>
<h1 align="center">学生成绩管理系统</h1>
<%--条件查询/搜索:注意写工具类--%>
<div align="center">
    <form id="myForm" action="${pageContext.request.contextPath}/selectStudentAll" method="post">
        姓名:<input type="text" name="name" value="${par.name}" size="6"/>
        班级编号:<input type="text" name="classid" value="${par.classid}" size="6"/>
        学科:<input type="text" name="subject" value="${par.subject}" size="6"/>
        老师姓名:<input type="text" name="teacher" value="${par.teacher}" size="6"/> <br/> <br/>
        学生成绩:<input type="text" name="scoreFrom" value="${par.scoreFrom}" size="6"/>
        ---<input type="text" name="scoreTo" value="${par.scoreTo}" size="6"/>
        <%--条件搜索后:分页--%>
        <input id="pn" type="hidden" name="pageNum" value="${pageInfo.pageNum}">
        <%--页面动态设置每页条数--%>
        <input id="ps" type="hidden" name="pageSize" value="${pageInfo.pageSize}">
        <input type="submit" class="btn btn-primary" value="搜索">
    </form>
</div>

public interface UserMapper {

    List<User> findAllSplit(Map<String, Object> params);

}

public interface UserService {
    User get(String username, String password);
}
<%--
  Created by IntelliJ IDEA.
  User: EDZ
  Time: 11:28
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<html>
<head>
    <title>学生成绩管理系统</title>

    <script type="text/javascript"
            src="https://cdn.staticfile.org/twitter-bootstrap/3.3.4/js/bootstrap.min.js"></script>
    <link rel="stylesheet" type="text/css"
          href="https://cdn.staticfile.org/twitter-bootstrap/3.3.4/css/bootstrap.min.css">

</head>
<style type="text/css">
    td {
            border-right: 1px solid #ffffff;
            box-sizing: border-box;
            outline: none;
            position: relative;
        }

        .login-center-input input:focus {
            border: 1px solid dodgerblue;
        }

        .login-center-input input:focus ~
        .login-center-input-text {
            top: 0;
            z-index: 3;
            opacity: 1;
            margin-top: -15px;
        }

        .login-button {
            cursor: pointer;
            width: 250px;
            text-align: center;
            height: 40px;
            line-height: 40px;
            background-color: dodgerblue;
            border: none;
            margin: 0 auto;
            margin-top: 50px;
            color: white;
            display: block;
            margin: 0 auto;
        }

        .login-error {
            margin-top: 40px;
            margin-left: 70px;
            color: red;
        }
    </style>
</head>
    public void setScoreFrom(Integer scoreFrom) {
        this.scoreFrom = scoreFrom;
    }

    public Integer getScoreTo() {
        return scoreTo;
    }

    public void setScoreTo(Integer scoreTo) {
        this.scoreTo = scoreTo;
    }

    public String getSubject() {
        return subject;
    }

    public void setSubject(String subject) {
        this.subject = subject;
    }

    @Override
    public String toString() {
        return "ParamsStu{" +
                "pageNum=" + pageNum +
                ", pageSize=" + pageSize +
                ", name='" + name + '\'' +
                ", classid='" + classid + '\'' +
                ", teacher='" + teacher + '\'' +
                ", scoreFrom=" + scoreFrom +
                ", scoreTo=" + scoreTo +
                ", subject='" + subject + '\'' +
                '}';
    }
}

public class Student {
    private Integer id;
    private String name;
    private String classid;
    private String teacher;
    private Integer score;
 void insertStudent(Student student);

}

public interface UserMapper {

    List<User> findAllSplit(Map<String, Object> params);

}

public interface UserService {
    User get(String username, String password);
}
<%--
  Created by IntelliJ IDEA.
  User: EDZ
  Time: 11:28
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<html>
<head>
    <title>学生成绩管理系统</title>

    <script type="text/javascript"
            src="https://cdn.staticfile.org/twitter-bootstrap/3.3.4/js/bootstrap.min.js"></script>
    <link rel="stylesheet" type="text/css"
          href="https://cdn.staticfile.org/twitter-bootstrap/3.3.4/css/bootstrap.min.css">

</head>
<style type="text/css">
    td {
        text-align: center;
    }
</style>
<body>
<h1 align="center">学生成绩管理系统</h1>
    }

    //删除
    @RequestMapping("/deleteStudent/{id}")
    public String deleteStudent(@PathVariable int id) {
        //实现删除:调用service方法
        studentService.deleteStudent(id);
//  删除数据后,同时返回更新结果页面,使用重定向
        return "redirect:/selectStudentAll";
    }

    //修改一条:1、查询一条 ,并且展示到页面(根据id查询,select)
    //        2、编辑修改,提交保存  (update)
    //1,查询一条后,进入到编辑页面
    @RequestMapping("/updateStudentEdit/{id}")
    public String upadateEmpEdit(Model model, @PathVariable int id) {
        //实现查询一条
        Student student = studentService.updateStudentEdit(id);
        //查询的数据放到域中
        model.addAttribute("student", student);
        return "edit";
    }

    //2,编辑页面完成后,提交 执行修改
    @RequestMapping("/updateStudent")
    public String upadateStudent(Student student) {
        //实现修改
        studentService.upadateStudent(student);
        //修改完毕,重定向,更新结果页面
        return "redirect:/selectStudentAll";
    }

    //添加:1、进入添加页面,编辑
    @RequestMapping("/insertStudentEdit")
    public String insertStudentEdit() {
        //添加完毕,重定向更新结果页面
        return "add";
    }

    //2、提交添加请求,实现
    @RequestMapping("/insertStudent")
    public String insertStudent(Student student) {
        //执行添加,调用service添加方法-dao-持久化
        studentService.insertStudent(student);
        //添加完毕,重定向更新结果页面

    <c:forEach items="${pageInfo.list}" var="stu" varStatus="vs">
        <tr>
            <td>${vs.count+(pageInfo.pageNum-1)*pageInfo.pageSize}</td>
            <td>${stu.name}</td>
            <td>${stu.classid}</td>
            <td>${stu.subject}</td>
            <td>${stu.teacher}</td>
            <td>${stu.score}</td>
            <td><c:if test="${stu.score>=90}"></c:if><c:if test="${stu.score<90 and stu.score>=80 }"></c:if><c:if test="${stu.score<80 and stu.score>=60}">合格</c:if><c:if test="${stu.score<60}">不合格</c:if></td>
            <td><a href="${pageContext.request.contextPath}/deleteStudent/${stu.id}"><input type="submit" class="btn btn-danger" value="删除"></a>
                <a href="${pageContext.request.contextPath}/updateStudentEdit/${stu.id}"><input type="submit" class="btn btn-info" value="修改"></a></td>
        </tr>
    </c:forEach>
</table>
<%--分页--%>
<table align="center">
    <tr>
        <td><a href="javascript:toPage(1);"><button type="button" class="btn btn-default btn-sm">首页</button></a></td>
        <td><a href="javascript:toPage(${pageInfo.pageNum-1});"><button type="button" class="btn btn-default btn-sm">上一页</button></a></td>
        <td><a href="javascript:toPage(${pageInfo.pageNum+1});"><button type="button" class="btn btn-default btn-sm">下一页</button></a></td>
        <td><a href="javascript:toPage(${pageInfo.pages});"><button type="button" class="btn btn-default btn-sm">尾页</button></a></td>
        <td>设置每页条数
            <select id="pageSize" onchange="toPage(1)">
                <option <c:if test="${pageInfo.pageSize==2}">selected</c:if>>2</option>
                <option <c:if test="${pageInfo.pageSize==5}">selected</c:if>>5</option>
                <option <c:if test="${pageInfo.pageSize==8}">selected</c:if>>8</option>
                <option <c:if test="${pageInfo.pageSize==10}">selected</c:if>>10</option>
                <option <c:if test="${pageInfo.pageSize==12}">selected</c:if>>12</option>
                <option <c:if test="${pageInfo.pageSize==15}">selected</c:if>>15</option>
            </select>
        </td>
        <td>第${pageInfo.pageNum}页/共${pageInfo.pages}页</td>
        <td><a href="${pageContext.request.contextPath}/insertStudentEdit"><button type="button" class="btn btn-success btn-sm">添加</button></a></td>
    </tr>
</table>
</body>
<script type="text/javascript">
    function toPage(pageNum) {
        //pageNum为当前页
        $("#pn").val(pageNum);
        //获取页面设置的每页条数
        var pageSize = $("#pageSize").val();
        //每页条数传给表单,更新每页条数
        $("#ps").val(pageSize);

</body>
</html>
<?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.demo.mapper.StudentMapper">
   <resultMap id="resultMapStudent" type="Student" >
       <id property="id" column="id"/>
       <result property="name" column="name"/>
       <result property="classid" column="classid"/>
       <result property="teacher" column="teacher"/>
       <result property="score" column="score" />
       <result property="subject" column="subject" />
   </resultMap>

    <select id="selectStudentAll" parameterType="ParamsStu" resultMap="resultMapStudent">
        select * from student
        <where>
           <if test="name!=null and name!=''">
                name like concat('%',#{name},'%')
           </if>
            <if test="classid!=null and classid!=''">
                and classid like concat('%',#{classid},'%')
            </if>
            <if test="teacher!=null and teacher!=''">
               and teacher like concat('%',#{teacher},'%')
            </if>
            <if test="scoreFrom!=null and scoreFrom!=''">
                and score &gt;= #{scoreFrom}
            </if>
            <if test="scoreTo!=null and scoreTo!=''">
                and score &lt;= #{scoreTo}
            </if>
            <if test="subject!=null and subject!=''">
               and subject like concat('%',#{subject},'%')
            </if>
        </where>

    </select>
   <!--删除-->
    <delete id="deleteStudent">
        delete from student where id=#{id}
    </delete>
    <!--查询一条:为修改准备-->

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值