java bootstrap+servlet(无框架)+mysql 实现增删改查 (客户管理系统)(三)(完)


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

(一)分页查询

思路 定义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 findStudentByPage(PageInfo pageInfo);

    /*
    * 统计数据总数
    * */
   Integer totalStudentNum();

    /*
     *
     * 分页查询学生信息 分页查询语句
     * */

    List 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" %>


    学生分页信息
    
    <script type="text/javascript" src="js/jquery-3.2.1.min.js"></script>
    <script type="text/javascript" src="js/bootstrap.js"></script>
    

    <%--<script>--%>
    <%--$(function () {--%>
    <%--$("#pageNum").change(function () {--%>
    <%--location.href = "hero2?type=show&nowPage=1&pageNum=" + $(this).val();--%>
    <%--});--%>
    <%--})--%>
    <%--</script>--%>


class="container-fluid">
class="row">
class="col-md-10">
位置:班级->学生信息
class="table table-bordered table-striped table-hover">
class="btn btn-danger" href="student?type=initadd&classid=${studentid}">添加学生
学生编号 学生姓名 学生性别 学生住址 操作
${student.stuId} ${student.stuName} ${student.stuSex} ${student.stuAdress} ${student.stuClass} class="btn btn-success" href="student?type=initupdate&stuid=${student.stuId}&stuClassId=${student.stuClass}">修改 class="btn btn-info" href="student?type=delete&stuid=${student.stuId}&stuClassId=${student.stuClass}">删除

最终效果:

 

(二、添加学生)

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" %>


    添加学生
    
    <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>


class="container-fluid">
class="row">

class="col-md-10">
位置:班级分页-添加学生
class="form-horizontal" id="saveFrm" action="student?type=add" method="post">
class="form-group row">
class="col-sm-3"> class="form-control" name="stuName" id="stuName" placeholder="请输入学生名称..." required="required" />
class="col-sm-2">
class="form-group">
class="col-sm-3"> class="form-control" name="stuSex" id="stuSex" placeholder="请输入学生性别..." required="required" />
class="col-sm-1">
class="form-group">
class="col-sm-3"> class="form-control" name="stuAdress" id="stuAdress" placeholder="请输入学生地址..." required="required" />
class="col-sm-1">
class="form-group">
class="col-xs-3">

效果:

 修改学生:

注意:如果按钮设置页面跳转都需要写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" %>


    修改班级
    
    <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>


class="container-fluid">
class="row">

class="col-md-10">
位置:学生列表-修改信息
class="form-horizontal" id="saveFrm" action="student?type=update" method="post">
class="form-group row">
class="col-sm-3"> class="form-control" name="stuName" id="stuName" placeholder="请输入学生名称..." required="required" value="${updatestudent.stuName}"/>
class="col-sm-2">
class="form-group">
class="col-sm-3"> class="form-control" name="stuSex" id="stuSex" placeholder="请输入学生性别..." required="required" value="${updatestudent.stuSex}"/>
class="col-sm-1">
class="form-group">
class="col-sm-3"> class="form-control" name="stuAress" id="stuAress" placeholder="请输入学生地址..." required="required" value="${updatestudent.stuAdress}"/>
class="col-sm-1">
class="form-group">
class="col-sm-3"> class="form-control" name="stuClass" id="stuClass" placeholder="请输入学生班级..." required="required" value="${updatestudent.stuClass}"/>
class="col-sm-1">
class="form-group">
class="col-xs-3">

效果:

 删除学生:
servlet,dao,impl,jsp:见上面

至此整个项目结束


完整源码地址:

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