基于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 >= #{scoreFrom}
</if>
<if test="scoreTo!=null and scoreTo!=''">
and score <= #{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>
<!--查询一条:为修改准备-->