「java缓存分页」java 内存分页

博主:adminadmin 2023-01-17 07:54:08 398

本篇文章给大家谈谈java缓存分页,以及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 内存分页的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。