问题:什么是分页,为什么使用分页?
分页就是将数据以多页去展示,使用分页可以提高客户的感受。
分页分类:
1.物理分页
只从数据库中查询出当前页的数据。
优点:不占用很多内存
缺点:效率比较低
2.逻辑分页
从数据库中将所有记录查询出业,存储到内存中,要想展示当前页
数据,直接从内存中获取。
优点:效率高
缺点:占用内存比较高
在java开发领域,我们使用的比较多的是物理分页。
物理分页的实现:
1.直接使用jdbc完成
使用滚动结果集. 优点:跨数据库。缺点:性能低。
2.使用数据库本身提供的分页操作.
会使用每一个数据库特定的分页函数,优点:性能高 缺点:不能跨数据库。mysql:limit
sqlservlet:top
oracle:rownum
介绍limit使用select * from 表 limit m,n;
m:代表的是从第几条开始 注意:它是从0开始记录.
n:代表查询几条记录.
示例:分页,每页显示6条,要查询第2页的数据.select * from 表 limit (页码-1)*每页条数,每页条数;
分页分析:
1.页码:默认第一页
2.每页条数:人为定义
3.总条数: select count(*) from 表
4.总页数:总页数=总条数%每页条数==0?总条数/每页条数:总条数/每页条数+1
总页数=Math.ceil(总条数*1.0/每页条数);
5.当前页的数据:List>----->select * from 表 limit (页码-1)*每页条数,每页条数;
代码实现
1.在success.jsp页面上
查看所有客户信息(分页展示)
2.创建CustomerFindAllByPageServlet完成分页
问题:要向页面携带的数据有很多,不仅是要展示的数据,例如:页码,总页数等,都需要携带到页面上,怎样处理?
解决方案:可以创建一个分页Bean,在这个Bean中封装所有关于分页相关的数据.
3.在showCustomerByPage.jsp页面上添加首页
上一页
下一页
尾页
在CustomerFindAllByPageServlet中处理请求参数 pageNumint pageNum = 1;
String _pageNum = request.getParameter("pageNum");
if (_pageNum != null) {
pageNum = Integer.parseInt(_pageNum);
}
问题:怎样控制上一页,下一页。
条件判断就可以解决.
上一页
上一页
下一页
下一页
分页扩展:
1.设定每页显示条数
1.在showCustomerByPage.jsp页面上添加一个
--请选择每页条数--
5
10
20
function changeCurrentPage(value){
location.href="/day20_1/findAllByPage?currentPage="+value;
};
2.在首页,上一页,下一页,尾页的连接上也要添加每页显示条数。
例如:首页
3.关于页码显示
第${n}页
问题:如果页码比较多怎样处理?
可以限定页码数,例如:前5后4。
这样做,页面的判断条件比较多,可以使用自定义标签。
可以在自定义标签中通过java代码来解决判断操作。如果直接在页面上,使用代码太乱
你还没有登录,请先使用 QQ登录 或 注册!
文章评论
发表评论
更多推荐
java 分页判断需要查询几次_java分页查询有关问题-Fun言
发布评论