「java缓存分页」java 内存分页
本篇文章给大家谈谈java缓存分页,以及java 内存分页对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、java中这种分页怎么实现的
- 2、java 缓存分页
- 3、在Java中如何用Serverlet实现分页查看数据库
- 4、做java项目时如何分页
- 5、java或存储过程分页问题
- 6、Java中如何实现分页功能
java中这种分页怎么实现的
方法太多了.
如果是jdbc的话
分两方面:1数据库分页
2代码分页
如果是框架持久层的话
一般持久层的查询对象都要相关方法设置
比如设置一次取多少
从那条记录开始取
还可以去引入一些外部分页的jar包
----------------------------------------------
总体思想是这样的:
首先肯定需要几个参数:请求的页数,一页显示多少条数据.数据库真实的条数.
首先查出所有数据放入一个集合里面,当然如果数据更新次数少竟然用缓存.
然后根据数据库总条数与每页显示条数得到真正的页数.
根据一页条数和请求的页可以得到一个查询的范围。
在这个范围内,把数据从刚才那个集合里取出放入一个新的集合.前台要显示的就是这个集合的数据.
至于导航,自然就是页数的加减了.
具体代码,有兴趣发邮件我,我可以给你几个例子的做法.kyoxue@126.com
java 缓存分页
可以查询的时候就查五条呀,这样不用每次查出所有的,而是根据当前是第几页来查询当前的几条。
在Java中如何用Serverlet实现分页查看数据库
给你一个非缓存分页类的简单例子吧(Page类可以视作javabean):
/**
* @author Administrator
*
*
* TODO 要更改此生成的类型注释的模板,请转至
* 窗口 - 首选项 - Java - 代码样式 - 代码模板
*/
import java.util.*;
public class Pager {
private String PageUrl;
private boolean hasNext;
private boolean hasPrevious;
private String previousPage;
private String nextPage;
private int offset;
private int size;
private int length;
private int pagenumber;
public Pager(int offset,int length, int size, String url){
this.offset=offset;
this.length=length;
this.size=size;
int index=url.indexOf("pager.offset");
if (index-1){
this.PageUrl=url.substring(0,index);
}else{
this.PageUrl=url;
}
}
public void setoffset(int offset){
this.offset=offset;
}
public void setPagerUrl(String PagerUrl){
this.PageUrl=PagerUrl;
}
public void setsize(int size){
this.size=size;
}
public void setlength(int length){
this.length=length;
}
public int getoffset(){
return this.offset;
}
public String getPageUrl(){
return this.PageUrl;
}
public boolean gethasNext(){
if((offset+1)*length=size){
hasNext=false;
}else{
hasNext=true;
}
return hasNext;
}
public boolean gethasPrevious(){
if(offset=1){
this.hasPrevious=true;
}else{
this.hasPrevious=false;
}
return hasPrevious;
}
public String getpreviousPage(){
this.previousPage="";
if (this.gethasPrevious()){
this.previousPage=this.PageUrl+"pager.offset="+(offset-1);
}
return previousPage;
}
public String getnextPage(){
this.nextPage="";
if(this.gethasNext()){
this.nextPage=this.PageUrl+"pager.offset="+(offset+1);
}
return this.nextPage;
}
public int getpagenumber(){
float temppn=(float)size/(float)length;
pagenumber=new Float(temppn).intValue();
if (temppnpagenumber){
this.pagenumber++;
}
return this.pagenumber;
}
public static ArrayList FindPageList(int offset,int length,List list){
ArrayList alist=new ArrayList();
for(int i=offset*length; i(offset*length+length)ilist.size();i++){
alist.add(list.get(i));
}
return alist;
}
}
具体使用:
1、在servlet初始化这个page
List list=DataUtil.getSpecifiedList();//得到整个数据列表
int offset=0;//便宜量
int length=10;//每页数据记录数
String pageOffset=request.getParameter("pager.offset");
if(pageOffset==null||pageOffset.equals("")){
offset=0;
}else{
offset=Integer.parseInt(pageOffset);
}
String Url=request.getRequestURL().toString()+"?"+request.getQueryString();
Pager pager=new Pager(offset,length,list.size(),Url);
List RsList=Pager.FindPageList(offset,length,list);
request.setAttribute("Pager",pager);
request.setAttribute("List",RsList);
RequestDispatcher dispatcher= request.getRequestDispatcher("/UI/someModule/list_display.jsp");
dispatcher.forward(request,response);
2、具体jsp中得到分页结果,并显示,并附页面跳转部分:
页面中得到分页结果
%
List RpList=(List)request.getAttribute("List");
Pager pager=(Pager)request.getAttribute("Pager");
%
%--用for循环把RpList显示--%
!--页面跳转代码,这只是个形式,简化和改变方式的余地很大--
form name="pageForm"%if(pager.gethasPrevious()){%a href="%= pager.getpreviousPage()%"prev/a
%}%
%if( pager.gethasNext()){%a href="%=pager.getnextPage()%"next/a%}%%if(pager.getpagenumber()1) {%第select name="pager" onchange="window.location='%=pager.getPageUrl()%pager.offset='+document.pageForm.pager.selectedIndex;"%for(int i=0;ipager.getpagenumber();i++){%option value=%=i% %if(pager.getoffset()==i){ %selected%}%%=(i+1)%/option%}%/select页%}% 共%=pager.getpagenumber()%页/form
ps:1、2两部分可以都放在页面类,不过你好像要MVC,所以给你这个代码。
做java项目时如何分页
分页最重要的是原理:
就是读取你所想要的数据,那最重要的就是sql语句的写法,如果是使用sqlserver数据库
分页的写法 select top 10 * from 表 where id not in(select top10 id from 表)这里假定每页显示10条数据,这里读取的是第二页的数据,如果读取第三页的数据,子查询里面就变成 top 20 ,总结为(页数-1)*当前页面的条数,希望能对有帮助。
java或存储过程分页问题
用存储过程是每一次只获得当前页的数据,也就是一页显示过少条记录就从数据库中取得多少条记录。
如果是用java,如果数据量不是很大,可以把所有的数据记录全部取出来,然后只显示这一页要显示的记录。这就是所谓的假分页。如果是假分页,数据是从存放数据的集合中获得。
还可以使用Hibernate,只获取当前页要显示的记录。数据从数据库中取得。
Java中如何实现分页功能
实现原理很简单,就是建立一个Page类,里面放当前访问的页数和每一页显示的记录行数。然后通过分页计算就可以得出下列数据。
总页数 = 总记录数/每页大小,如果0!=总记录数%每页大小,那么总页数再+1。
当前页数。
表记录的起始位置=(当前页数-1)*每页大小。
总记录数(select count(*) from [表名] [where [条件]]。从数据库中查询得到)
每页大小,可以固定,也可以从页面传过来有了这几个参数之后,就用sql语句查出对应的记录就可以了。
关于java缓存分页和java 内存分页的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。