主要内容:分页查询、添加学生(在本班级添加)、修改学生、删除学生
(一)分页查询
思路 定义Pageinfo控制页面属性(->对分页查询进行数值传递)
entity.pageinfo
package stu.adam.entity; import lombok.*; @Getter @Setter @AllArgsConstructor @NoArgsConstructor @ToString public class PageInfo { private Integer nowPage;//当前页 private Integer pageNum;//每页显示几条数据 private Integer startIndex;//起始下标 private Integer prvePage;//上一页 private Integer nextPage;//下一页 private Integer sumPage;//总页数 private Integer totalNum;//总条数 public PageInfo(Integer nowPage, Integer pageNum, Integer totalNum) { this.nowPage = nowPage; this.pageNum = pageNum <= 0 ? 6 : pageNum; this.totalNum = totalNum; /* * 当前目标:计算所有需要的属性 * */ this.sumPage = totalNum % this.pageNum == 0 ? totalNum / this.pageNum : totalNum / this.pageNum + 1; // 判断 nowPage 是否大于 sumPage this.nowPage = this.nowPage > this.sumPage ? this.sumPage : this.nowPage; // 判断 nowPage是否小于 1 this.nowPage = this.nowPage < 1 ? 1 : this.nowPage; // 起始下标 this.startIndex = (this.nowPage - 1) * this.pageNum; // 计算上一页 this.prvePage = (this.nowPage - 1) < 1 ? 1 : (this.nowPage - 1); // 计算下一页 this.nextPage = (this.nowPage + 1) > this.sumPage ? this.sumPage : (this.nowPage + 1); } }
编写dao层daoimpl service层 serviceimpl
两者高度重复,故只列出一种
StudentInfoDao
package stu.adam.dao; import stu.adam.entity.PageInfo; import stu.adam.entity.Student; import java.util.List; public interface StudentInfoDao { /* * * 分页查询学生信息 分页查询语句 * */ List<Student> findStudentByPage(PageInfo pageInfo); /* * 统计数据总数 * */ Integer totalStudentNum(); /* * * 分页查询学生信息 分页查询语句 * */ List<Student> findStudentByPage(PageInfo pageInfo,Integer id); /* * * 分页查询学生信息 分页查询语句 * */ /* * 统计数据总数 * */ Integer totalStudentNum(Integer id); }
StudentInfoDaoimpl
package stu.adam.dao.Impl; import stu.adam.dao.StudentDao; import stu.adam.dao.StudentInfoDao; import stu.adam.entity.Classinfo; import stu.adam.entity.Student; import stu.adam.util.JDBCUtils; public class StudentDaoImpl implements StudentDao { @Override public Boolean updateStudentById(Student student) { String sql="update student set stuName= ?,stuSex= ?,stuAdress= ?,stuClass=? where stuId = ?"; return JDBCUtils.update(sql,student.getStuName(),student.getStuSex(),student.getStuAdress(),student.getStuClass(),student.getStuId()); } @Override public Boolean deleteStudentById(Integer id) { String sql= "delete from student where stuId =?"; return JDBCUtils.update(sql,id); } @Override public Student checkStudentById(Integer id) { String sql="select * from student where stuId=?"; return JDBCUtils.get(sql,Student.class,id); } @Override public Boolean addStudent(Student student) { String sql="insert into student values(null,?,?,?,?)"; return JDBCUtils.insert(sql,student.getStuName(),student.getStuSex(),student.getStuAdress(),student.getStuClass())>0; } }
servlet编写(因为是写完项目后写的博客故给所有的代码)
package stu.adam.control; import stu.adam.entity.Classinfo; import stu.adam.entity.Student; import stu.adam.service.Impl.StudentServiceImpl; import stu.adam.service.StudentService; import stu.adam.util.DataConvertUtil; import stu.adam.util.JDBCUtils; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; @WebServlet(name = "studentServlet", urlPatterns = "/student") public class StudentServlet extends HttpServlet { StudentService studentService = new StudentServiceImpl(); protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=UTF-8"); String type = request.getParameter("type"); switch (type) { case "delete": delete(request, response); break; case "initupdate": initupdate(request, response); break; case "update": update(request, response); break; case "add": add(request, response); break; case "initadd": initadd(request, response); break; } } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request, response); } public void delete(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String idStr = request.getParameter("stuid"); Integer id = DataConvertUtil.stringConvertInteger(idStr); studentService.deleteStudentById(id); String idStr2 = request.getParameter("stuClassId"); Integer classid = DataConvertUtil.stringConvertInteger(idStr2); response.sendRedirect("studentinfo?id=" + classid); } /* * 跳转 * */ public void initupdate(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 获取主键ID String idStr = request.getParameter("stuid"); Integer id = DataConvertUtil.stringConvertInteger(idStr); Student student = studentService.checkStudentById(id); request.setAttribute("updatestudent", student); request.getRequestDispatcher("studentUpdate.jsp").forward(request, response); } public void update(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String stuName = request.getParameter("stuName"); String stuSex = request.getParameter("stuSex"); String stuAdress = request.getParameter("stuAress"); String stuClass = request.getParameter("stuClass"); String stuId = request.getParameter("stuId"); Integer stuId2 = DataConvertUtil.stringConvertInteger(stuId); Integer stuClass2 = DataConvertUtil.stringConvertInteger(stuClass); Student student = new Student(stuId2, stuName, stuSex, stuAdress, stuClass2); studentService.updateStudentById(student); String idStr2 = request.getParameter("stuClass"); Integer classid = DataConvertUtil.stringConvertInteger(idStr2); response.sendRedirect("studentinfo?id=" + classid); } /* * 跳转 * */ public void add(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //在本页面添加学生 String stuName = request.getParameter("stuName"); String stuSex = request.getParameter("stuSex"); String stuAdress = request.getParameter("stuAdress"); String stuClass=request.getParameter("classid"); Integer stuClass2=DataConvertUtil.stringConvertInteger(stuClass); Student student=new Student(stuName,stuSex,stuAdress,stuClass2); studentService.addStudent(student); // 添加成功后返回当前班级 response.sendRedirect("studentinfo?id="+stuClass2); } /* * 跳转 * */ public void initadd(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String idStr = request.getParameter("classid"); Integer id = DataConvertUtil.stringConvertInteger(idStr); //在本页面添加学生 //把班级id传过去 request.setAttribute("classid2", id); // 获取主键ID request.getRequestDispatcher("addStudent.jsp").forward(request, response); } }
jsp页面:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%-- Created by IntelliJ IDEA. User: Administrator Date: 2021/11/12 Time: 17:50 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>学生分页信息</title> <link rel="stylesheet" type="text/css" href="css/bootstrap.min.css"/> <script type="text/javascript" src="js/jquery-3.2.1.min.js"></script> <script type="text/javascript" src="js/bootstrap.js"></script> <style> * { margin: 0px; padding: 0px; } #myFrm td { line-height: 40px; } #showProduct td { line-height: 40px; } </style> <%--<script>--%> <%--$(function () {--%> <%--$("#pageNum").change(function () {--%> <%--location.href = "hero2?type=show&nowPage=1&pageNum=" + $(this).val();--%> <%--});--%> <%--})--%> <%--</script>--%> </head> <body> <div class="container-fluid"> <div class="row"> <div class="col-md-10"> <h5 style="font-weight: 900">位置:班级->学生信息</h5> <table id="showUserinfo" class="table table-bordered table-striped table-hover"> <td colspan="7"> <a class="btn btn-danger" href="student?type=initadd&classid=${studentid}">添加学生</a> </td> <tr> <th>学生编号</th> <th>学生姓名</th> <th>学生性别</th> <th>学生住址</th> <th>操作</th> </tr> <c:forEach var="student" items="${studentList}"> <tr> <td> ${student.stuId} </td> <td> ${student.stuName} </td> <td> ${student.stuSex} </td> <td> ${student.stuAdress} </td> <td style="display:none"> ${student.stuClass} </td> <td> <a class="btn btn-success" href="student?type=initupdate&stuid=${student.stuId}&stuClassId=${student.stuClass}">修改</a> <a class="btn btn-info" href="student?type=delete&stuid=${student.stuId}&stuClassId=${student.stuClass}">删除</a> </td> </tr> </c:forEach> <tr> <td colspan="6"> <nav> <ul class="pager"> <li><a href="studentinfo">首页</a></li> <li><a href="studentinfo?nowPage=${page.prvePage}&id=${studentid}">上一页</a> </li> ${page.nowPage}/${page.sumPage} <li><a href="studentinfo?nowPage=${page.nextPage}&id=${studentid}">下一页</a> </li> <li><a href="studentinfo?nowPage=${page.sumPage}&id=${studentid}">尾页</a> </li> </ul> </nav> </td> </tr> </table> </div> </div> </div> </body> </html>
最终效果:

(二、添加学生)
dao层impl层:
package stu.adam.dao; import stu.adam.entity.Classinfo; import stu.adam.entity.Student; public interface StudentDao { /* * 修改学生信息 * */ Boolean updateStudentById(Student student); /* * 删除学生信息 * */ Boolean deleteStudentById(Integer id); /* * 查询班级通过Id * */ Student checkStudentById(Integer id); Boolean addStudent(Student student); }
package stu.adam.dao.Impl; import stu.adam.dao.StudentDao; import stu.adam.dao.StudentInfoDao; import stu.adam.entity.Classinfo; import stu.adam.entity.Student; import stu.adam.util.JDBCUtils; public class StudentDaoImpl implements StudentDao { @Override public Boolean updateStudentById(Student student) { String sql="update student set stuName= ?,stuSex= ?,stuAdress= ?,stuClass=? where stuId = ?"; return JDBCUtils.update(sql,student.getStuName(),student.getStuSex(),student.getStuAdress(),student.getStuClass(),student.getStuId()); } @Override public Boolean deleteStudentById(Integer id) { String sql= "delete from student where stuId =?"; return JDBCUtils.update(sql,id); } @Override public Student checkStudentById(Integer id) { String sql="select * from student where stuId=?"; return JDBCUtils.get(sql,Student.class,id); } @Override public Boolean addStudent(Student student) { String sql="insert into student values(null,?,?,?,?)"; return JDBCUtils.insert(sql,student.getStuName(),student.getStuSex(),student.getStuAdress(),student.getStuClass())>0; } }
servlet代码:见上面
jsp代码:
<%-- Created by IntelliJ IDEA. User: Administrator Date: 2021/11/14 Time: 15:57 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>添加学生</title> <link rel="stylesheet" type="text/css" href="css/bootstrap.min.css"/> <script type="text/javascript" src="js/jquery-3.6.0.min.js"></script> <script type="text/javascript" src="js/bootstrap.js"></script> <script type="text/javascript"> $(function () { $("#heroImage").change(function () { console.log($(this).val()); var path = $(this).val().split("\\"); var imgName = path[path.length - 1]; $("[name=heroImage]").val("img\\" + imgName); }); }); </script> </head> <body> <div class="container-fluid"> <!-- 添加数据 --> <div class="row"> <h1></h1> <div class="col-md-10"> <h5 style="font-weight: 900">位置:班级分页-添加学生</h5> <!-- 表单(录入英雄信息) --> <form class="form-horizontal" id="saveFrm" action="student?type=add" method="post"> <div class="form-group row"> <label class="control-label col-sm-2">学生名称:</label> <div class="col-sm-3"> <input type="text" class="form-control" name="stuName" id="stuName" placeholder="请输入学生名称..." required="required" /> </div> <div class="col-sm-2"></div> <input type="hidden" name="classid" value="${classid2}"/> </div> <div class="form-group"> <label class="control-label col-sm-2">学生性别:</label> <div class="col-sm-3"> <input type="text" class="form-control" name="stuSex" id="stuSex" placeholder="请输入学生性别..." required="required" /> </div> <div class="col-sm-1"></div> </div> <div class="form-group"> <label class="control-label col-sm-2">学生地址:</label> <div class="col-sm-3"> <input type="text" class="form-control" name="stuAdress" id="stuAdress" placeholder="请输入学生地址..." required="required" /> </div> <div class="col-sm-1"></div> </div> <div class="form-group"> <label class="control-label col-sm-2"> </label> <!-- type默认 值是submit --> <div class="col-xs-3"> <button class="btn btn-danger" type="submit">增加</button> </div> </div> </form> </div> </div> </div> </body> </html>
效果:
修改学生:
注意:如果按钮设置页面跳转都需要写init(功能:传值和跳转)
dao,impl,servelet:见上面
jsp:
<%-- Created by IntelliJ IDEA. User: Administrator Date: 2021/11/14 Time: 15:03 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>修改班级</title> <link rel="stylesheet" type="text/css" href="css/bootstrap.min.css"/> <script type="text/javascript" src="js/jquery-3.6.0.min.js"></script> <script type="text/javascript" src="js/bootstrap.js"></script> <script type="text/javascript"> $(function () { $("#heroImage").change(function () { console.log($(this).val()); var path = $(this).val().split("\\"); var imgName = path[path.length - 1]; $("[name=heroImage]").val("img\\" + imgName); }); }); </script> </head> <body> <div class="container-fluid"> <!-- 添加数据 --> <div class="row"> <h1></h1> <div class="col-md-10"> <h5 style="font-weight: 900">位置:学生列表-修改信息</h5> <!-- 表单(录入英雄信息) --> <form class="form-horizontal" id="saveFrm" action="student?type=update" method="post"> <div class="form-group row"> <label class="control-label col-sm-2">学生名称:</label> <div class="col-sm-3"> <input type="text" class="form-control" name="stuName" id="stuName" placeholder="请输入学生名称..." required="required" value="${updatestudent.stuName}"/> <input type="hidden" name="stuId" value="${updatestudent.stuId}"/> </div> <div class="col-sm-2"></div> </div> <div class="form-group"> <label class="control-label col-sm-2">学生性别:</label> <div class="col-sm-3"> <input type="text" class="form-control" name="stuSex" id="stuSex" placeholder="请输入学生性别..." required="required" value="${updatestudent.stuSex}"/> </div> <div class="col-sm-1"></div> </div> <div class="form-group"> <label class="control-label col-sm-2">学生地址:</label> <div class="col-sm-3"> <input type="text" class="form-control" name="stuAress" id="stuAress" placeholder="请输入学生地址..." required="required" value="${updatestudent.stuAdress}"/> </div> <div class="col-sm-1"></div> </div> <div class="form-group"> <label class="control-label col-sm-2">学生班级(输入班级id):</label> <div class="col-sm-3"> <input type="text" class="form-control" name="stuClass" id="stuClass" placeholder="请输入学生班级..." required="required" value="${updatestudent.stuClass}"/> </div> <div class="col-sm-1"></div> </div> <div class="form-group"> <label class="control-label col-sm-2"> </label> <!-- type默认 值是submit --> <div class="col-xs-3"> <button class="btn btn-danger" type="submit">修改</button> </div> </div> </form> </div> </div> </div> </body> </html>
效果:

删除学生:
servlet,dao,impl,jsp:见上面
至此整个项目结束
完整源码地址:
浙公网安备 33010602011771号