主要内容:分页查询、添加学生(在本班级添加)、修改学生、删除学生

(一)分页查询

思路 定义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:见上面

 

至此整个项目结束

 


完整源码地址:

java学习代码: 如名称所示 - Gitee.com

 

 

posted on 2021-11-14 20:30  realAdam  阅读(410)  评论(0)    收藏  举报