分页查询

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值