分页查询

一时失言乱红尘 2022-02-02 23:15 530阅读 0赞

CURD-

1. 添加用户

  • 表单项的name,JavaBean的属性名,数据库表的字段名,建议保持一致
  • 注意:提交的表单中有中文,要解决中文参数乱码问题
  • Servlet里,要把map封装到一个JavaBean对象里:BeanUtils.populate(bean, map)
  • 尽量少写重复代码(尽量调用已有的代码)

2. 修改用户

2.1 查询并显示用户信息

  • 页面里发请求时传参:路径?name=value&name=value&......
  • JDBCTemplate的queryForObject得到一个JavaBean对象。如果找不到数据,会抛异常:需要try…catch…

    • 大部分异常,如果不知道怎样处理,就可以抛。有少数特殊的:
    • queryForObject:需要捕获到EmptyResultDataAccesccExcpetion
    • 在Servlet里的异常:需要捕获,否则就把异常抛给了Tomcat服务器
    • 事务处理过程中,如果有异常:需要捕获,之后要进行事务回滚

2.2 修改用户信息

  • 修改用户信息的表单里,必须有一个隐藏域:用户的id。作为update语句的where条件使用的

3. 删除用户

  • 删除之前,需要先弹窗确认。确定要删除之后,再发送删除的请求
  • forEach标签的var定义的变量,只能在循环内部使用

4. 分页查询

4.1 所有查询功能的共同思路

  1. 确定页面上要什么数据
  2. 准备页面需要的数据:在服务端准备的

    1. 确定要执行的SQL语句
    2. 根据SQL语句判断,客户端发请求时需要传递的参数
  3. 整理整体的实现思路

    1. 页面发请求,传参到Servlet
    2. Servlet里接收参数:

      1. 调用service,准备页面需要的数据

        1. 如果数据比较多,就可以封装到一个JavaBean/Map里
        2. 返回给Servlet封装后的结果
      2. 得到结果,把结果传递给页面
    3. 页面里接收并显示结果数据

4.2 分页查询用户信息

  1. 确定页面上要什么数据:

    • 页码对应的用户列表:List<User>,用来显示给用户查看的
    • 当前页码是几:用于标示出来当前页码按钮的
    • 总共多少页:用于确定要显示多少个页码按钮的
  2. 准备页面需要的数据:在服务端service里准备的

    • List<User

      • select * from tab_user limit 起始索引?, 查询数量?
      • 需要页面传递页码:根据页码,计算出来起始索引
      • 需要页面传递每页几条
    • 当前页码:需要页面传参
    • 总共多少页:

      • 计算公式:pageCount = Math.ceil(totalCount * 1.0/pageSize)
      • 需要页面传参每页几条:pageSize
      • 需要从数据库里查询总数量:totalCount
    • 最终确定,要准备页面需要的数据,只需要页面传递两个参数:

      • pageNumber:当前页码
      • pageSize:每页几条(如果页面不传,可以给一个默认值)
  3. 编写代码的整体思路

    1. 页面发请求到Servlet,并且传参:pageNumber、pageSize
    2. 在Servlet里:

      1. 接收参数
      2. 调用service,让service准备页面需要的三项数据

        1. service里准备页面需要的三项数据:List<User>, pageNumber, pageCount
        2. 把三项数据,封装到一个PageBean对象里
        3. 返回pageBean对象
      3. 得到PageBean(里边有页面需要的所有数据)
      4. 把pageBean对象传递给list.jsp:让页面显示这些数据
    3. 在list.jsp里:

      1. 得到pageBean里的List<User>,循环遍历,显示到表格里
      2. 得到pageBean里的pageCount,循环显示pageCount个页码按钮
      3. 得到pageBean里的pageNumber,要把当前页码标示出来
      4. 提供一个“上一页”的按钮

        • 如果当前页码 <= 1:“上一页”按钮,禁用,或者不显示
        • 否则:写跳转的路径:当前页码 - 1
      5. 提供一个“下一页”的按钮

        • 如果当前页码 >= 总页数:“下一页”按钮 禁用,或者不显示
        • 否则:写跳转的路径:当前页码 + 1

发表评论

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

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

相关阅读

    相关 查询

    AngularJS+Bootstrap 分页功能实现,同时支持模糊查询分页 发表于2017/9/11 20:18:56  209人阅读 因为项目的需要需要实现页面的分页

    相关 查询

    CURD- 1. 添加用户 表单项的name,JavaBean的属性名,数据库表的字段名,建议保持一致 注意:提交的表单中有中文,要解决中文参数乱码问题