模糊分页、模糊查询分页

r囧r小猫 2023-10-11 22:03 207阅读 0赞

一、html页面

  • 分页

  • JS中代码

二、Controller层

1.接收jsp的查询条件参数,和当前页参数page

2.查询所有的学生信息

3.进行模糊条件查询

4.将pageinfo,所有部门 和查询条件存进model

5.跳转到展示页面

  • 首次打开该页面,加载的数据

    request.setCharacterEncoding(“utf-8”);

    1. response.setContentType("text/html;charset=utf-8");
    2. String query = request.getParameter("query");
    3. //获取当前页
    4. String pagesize = request.getParameter("page")==null?"1":request.getParameter("page");
    5. StudentService studentService = new StudentService();
    6. Page page = new Page();
    7. //给当前页赋值
    8. page.setCurrentPage(Integer.parseInt(pagesize));
    9. //分页信息
    10. List<Student> studentList = studentService.getStudentList(query,page);
    11. //获取总条数
    12. int ssum = studentService.selStudentPageSize(query);
    13. //设置总条数
    14. page.setRecordTotal(ssum);
    15. //内容
    16. page.setContent(studentList);
    17. request.setAttribute("query",query);
    18. request.setAttribute("page",page);
    19. request.getRequestDispatcher("/WEB-INF/pages/admin/admin-student.jsp").forward(request, response);
  • 点击首页,上一页,下一页之后,所显示的数据

    request.setCharacterEncoding(“utf-8”);

    1. response.setContentType("text/html;charset=utf-8");
    2. String pagesize = request.getParameter("page");
    3. String query = request.getParameter("query");
    4. StudentService studentService = new StudentService();
    5. Page page = new Page();
    6. //给当前页赋值
    7. page.setCurrentPage(Integer.parseInt(pagesize));
    8. //分页信息
    9. List<Student> studentList = studentService.getStudentList(query,page);
    10. //总条数
    11. int ssum = studentService.selStudentPageSize(query);
    12. page.setRecordTotal(ssum);
    13. page.setContent(studentList);
    14. request.setAttribute("query",query);
    15. request.setAttribute("page",page);
    16. request.getRequestDispatcher("/WEB-INF/pages/admin/admin-student.jsp").forward(request, response);

三、DAO层

  1. //获取所有的学生
  2. public List<Student> getStudentList(String query, Page page) {
  3. Connection con = null;
  4. PreparedStatement pre = null;
  5. ResultSet resultSet = null;
  6. List<Student> res = new ArrayList<>();
  7. try {
  8. con = DBUtils.getConnection();
  9. String sql = "SELECT * FROM tb_student LEFT JOIN tb_class on tb_student.cid=tb_class.id where 1=1";
  10. if(query != null && !"".equals(query.trim())) {
  11. query = ParamsUtils.wrapper(query);
  12. sql += " and student_no like " + query + " or student_name like " + query;
  13. }
  14. sql += " limit ?,?";
  15. pre = con.prepareStatement(sql);
  16. //(当前页-1)*每页显示条数
  17. pre.setInt(1, (page.getCurrentPage()-1)*page.getPageSize());
  18. //每页大小
  19. pre.setInt(2,page.getPageSize());
  20. resultSet = pre.executeQuery();
  21. while(resultSet.next()) {
  22. String studentNo = resultSet.getString("student_no");
  23. String studentName = resultSet.getString("student_name");
  24. String description = resultSet.getString("description");
  25. String idCard = resultSet.getString("id_card");
  26. Integer age = resultSet.getInt("age");
  27. Integer id = resultSet.getInt("id");
  28. Byte gender = resultSet.getByte("gender");
  29. String name = resultSet.getString("name");
  30. String year = resultSet.getString("year");
  31. String hobby = resultSet.getString("hobby");
  32. Date createTime = resultSet.getDate("create_time");
  33. Date updateTime = resultSet.getDate("update_time");
  34. Student student = new Student();
  35. student.setStudentNo(studentNo);
  36. student.setStudentName(studentName);
  37. student.setDescription(description);
  38. student.setIdCard(idCard);
  39. student.setAge(age);
  40. student.setGender(gender);
  41. student.setYear(year);
  42. student.setCreateTime(createTime);
  43. student.setUpdateTime(updateTime);
  44. Classs aClasss = new Classs();
  45. aClasss.setId(id);
  46. aClasss.setName(name);
  47. student.setHobby(hobby);
  48. student.setAclasss(aClasss);
  49. res.add(student);
  50. }
  51. } catch (SQLException e) {
  52. // TODO Auto-generated catch block
  53. e.printStackTrace();
  54. }finally {
  55. DBUtils.closeConnection(con, pre, resultSet);
  56. }
  57. return res;
  58. }
  59. //获取学生总数
  60. public int selStudentPageSize(String query) {
  61. Connection con = null;
  62. PreparedStatement pre = null;
  63. ResultSet resultSet = null;
  64. try {
  65. con = DBUtils.getConnection();
  66. String sql = "SELECT count(*) ssum FROM tb_student left join tb_class on tb_student.cid=tb_class.id where 1=1";
  67. if(query != null && !"".equals(query.trim())) {
  68. query = ParamsUtils.wrapper(query);
  69. sql += " and student_no like " + query + " or student_name like " + query;
  70. }
  71. pre = con.prepareStatement(sql);
  72. resultSet = pre.executeQuery();
  73. while(resultSet.next()) {
  74. return resultSet.getInt("ssum");
  75. }
  76. } catch (SQLException e) {
  77. // TODO Auto-generated catch block
  78. e.printStackTrace();
  79. }finally {
  80. DBUtils.closeConnection(con, pre, resultSet);
  81. }
  82. return 0;
  83. }

四、分页工具类

  1. package com.dayrain.utils;
  2. import java.util.List;
  3. /**
  4. * 分页
  5. *
  6. */
  7. public class Page<T> {
  8. /**
  9. * currentPage 当前页
  10. */
  11. private int currentPage = 1;
  12. /**
  13. * pageSize 每页大小
  14. */
  15. private int pageSize = 3;
  16. /**
  17. * pageTotal 总页数
  18. */
  19. private int pageTotal;
  20. /**
  21. * recordTotal 总条数
  22. */
  23. private int recordTotal = 0;
  24. /**
  25. * content 每页的内容
  26. */
  27. private List<T> content;
  28. public List<T> getContent() {
  29. return content;
  30. }
  31. public void setContent(List<T> content) {
  32. this.content = content;
  33. }
  34. public int getCurrentPage() {
  35. return currentPage;
  36. }
  37. public void setCurrentPage(int currentPage) {
  38. this.currentPage = currentPage;
  39. }
  40. public int getPageSize() {
  41. return pageSize;
  42. }
  43. public void setPageSize(int pageSize) {
  44. this.pageSize = pageSize;
  45. }
  46. public int getPageTotal() {
  47. ///1 53%5 3 50%5 0
  48. pageTotal = ((recordTotal%pageSize)==0)?(recordTotal/pageSize):((recordTotal/pageSize)+1) ;
  49. return pageTotal;
  50. }
  51. // public void setPageTotal(int pageTotal) {
  52. // this.pageTotal = pageTotal;
  53. // }
  54. public int getRecordTotal() {
  55. return recordTotal;
  56. }
  57. public void setRecordTotal(int recordTotal) {
  58. this.recordTotal = recordTotal;
  59. }
  60. @Override
  61. public String toString() {
  62. return "Page{" +
  63. "currentPage=" + currentPage +
  64. ", pageSize=" + pageSize +
  65. ", pageTotal=" + pageTotal +
  66. ", recordTotal=" + recordTotal +
  67. ", content=" + content +
  68. '}';
  69. }
  70. }

五、页面效果

ff622944982f4b6ca07fed5ddf9bd2c6.gif

发表评论

表情:
评论列表 (有 0 条评论,207人围观)

还没有评论,来说两句吧...

相关阅读