分页的作用
数据量大,一页容不下。
后台查询部分数据而不是全部数据。
降低带宽使用,提高访问速度。
PageBean
封装的工具类,降低分页难度,实现功能重用。
分页的三个基本属性:
每页几条记录size,可以有默认值。一般为5,10,15...
当前页号index,可以有默认值1
记录总数totalCount,没有默认值,需查询数据库获取真正的记录总数。
分页的其他属性
一共多少页:totalPageCount=totalCount/size+1
上一页 : index-1当前页1,上一页1.
下一页 : index+1当前页是最后一页,下一页还是最后一页
分页Bean放要查询的数据 protected List<T> list;
得到开始记录:
getStartRow()
rerurn (index - 1) * size;
得到结束记录:
getEndRow()
return index * size;
附带条件的查询
带条件的查询是在已经查询过所有的基础上,通过指定条件进行查询。
1、当点击指定查询时,form表单进行提交,发送请求至控制层,接收form表单的请求数据。
2、将数据作为参数去调用业务层进行处理,在传参之前需要做出判断,将字符串的对其进行空值判断,浮点型的使用parseDouble进行转换,这样避免了出现了异常程序无法继续运行的情况。
3、业务层处理处理步骤
3.1--->调用Dao层查询符合条件的记录总数,这里的符合条件根据传的参数。
3.2--->调用Dao层获取指定页的学生数据,并放入容器中。(分页数据)
3.3--->将Dao层返回来的数据结果添加至PageBean中。
4、数据访问层
4.1--->查询符合条件的记录总数
4.2--->查询符合条件的个人信息
并将查询到的数据封装到对象添加至容器中进行返回。
5、控制层
将返回的数据存储到作用域,请求转发jsp。
6、视图层
接收作用域中数据,使用JSTL/EL表达式进行数据接收显示。
sql语句
Oracle的分页查询需要使用rownum伪列,在编写sql语句的时候可以现在数据库中进行测试,无误后再放入代码中。
Mysql中分页查询需要使用的是limit。
前台页面代码优化
1、将标签内同样的代码进行提取,在javascript中创建函数,编写代码。
2、取值JSTL/EL。
3、判断,增加判断条件可以完善页面,当页面没有上一页或下一页时,取消了a标签。
这里需要注意下,当前页面及每页记录数可以自己设定。