分页分为两种,真分页和假分页
一种是将所有数据查询出来,通过页数几条几条显示,也就是 假分页!
一种是根据页数查询几条几条 这是真分页
对比起来,假分页一次性查询所有数据,无疑是消耗内存特别多的,如果数据很多,缓冲区光被它自己的数据就占满了
所以,如果要实际使用,还是使用真分页比较好,当然目前一些框架和插件可以有现成的分页工具,不过能够自己做出一个源码分页还是很有用的
使用java做分页
1.准备eclipse,oracle做分页,数据库内容自备,配置一个servlet用来与ajax交互,所需要的连接数据库的包导入,我是用了GSON包所以导入了,百度就可以搜索下载
2.真分页的思路:
.一个显示五条数据的页面,两个点击前一页后一页的按钮
打开当前页面,默认给后台传page=1,也就是第一页,当点击后一页时,将page加一传递,前一页同理
后台接收page,通过条件筛选查询出所需要的第几条到第几条数据,包装起来返回给前台
前台接收比解析数据,通过循环将数据加入table
3.代码实现:
打开eclipse,建立一个index.jsp用来做测试页面,里面需要一个table和两个button
打开数据库(我使用的是oracle),建立所需要的表emp,并传入十几到几十条数据
创建java类
首先是Person类用来装查询结果
然后是查询类与方法,根据输入的参数page,查询第min到第max行,并将查询结果集装入List<Person>类型对象进行返回
最后是与ajax交互的servlet,接收前台的page,并将这个数据传递给Conn.read()方法,使其定向查询page
写一个发送page和接受结果集的ajax,ajax的写法不多赘述,只讲一下table中的改变
如果已经查询好五条数据,再点下一页,无疑会将页面数据变为了十条,那这样就不是我们想要的结果,所以在每次查询结果集打印之前需要将已经存在的table进行清空,清空table我们这使用了一个循环,使其保留table标签而只删除行,做到清空效果,然后遍历查询结果集将其拆分放入新建的tr td中
这是页面默认启用的ajax,传递page为1,故需要在<script>中开局设置一个全局变量 var page = 1
粗略简介,希望可以帮助到你,有任何疑问或建议可以下方留言评论,共同学习!