「java数据内存分页」java内存分页工具类

博主:adminadmin 2023-03-20 07:23:07 1107

本篇文章给大家谈谈java数据内存分页,以及java内存分页工具类对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

java或存储过程分页问题

用存储过程是每一次只获得当前页的数据,也就是一页显示过少条记录就从数据库中取得多少条记录。

如果是用java,如果数据量不是很大,可以把所有的数据记录全部取出来,然后只显示这一页要显示的记录。这就是所谓的假分页。如果是假分页,数据是从存放数据的集合中获得。

还可以使用Hibernate,只获取当前页要显示的记录。数据从数据库中取得。

java分页

分页想清楚了就没什么难的了。一般有两种(我就知道两种):

1.数据库分页:

/**

* @param pageItems:一页显示条数 currentPage:当前第几页

* @autor godelegant

*/

public List findAll(int pageItems,int currentPage){

StringBuffer sqlStr = new StringBuffer("select * from Product limit ?,?");

...

...

int startIndex = (currentPage-1)*pageItems;);//(currentPage-1)*pageItems能过当前页和页面记录数得到应该从哪条开始取

int endIndex = startIndex+pageItems;

db.getPstmt().setInt(1,startIndex);

db.getPstmt().setInt(2,endIndex);

ResultSet rs = db.getPstmt().executQuery();//假设你已经得到了数据库连接

//以上为MYSQL的JDBC分页,下面是ORALCE的,差别只在于SQL,所以你换一下SQL就OK:

StringBuffer sqlStr = new StringBuffer("select *,rownum rn from (select * from Product) where rn =? and rownum =?");

}

求总页数的方法很简单,查出所有记录数,除一页显示数。就可以得到

以上是JDBC的,如果使用hibernate等,数据库分页将会变得很简单,只需要设置两个参数,就是从哪取和取多少。

2.代码分页

思路是将数据库中的所有记录都取出来,然后再分页。

/**

* @para items:数据库中的所有记录,你可以使用另一个方法得到,如何查询得到我就不用说了吧

* @autor godelegant

*/

public List findAll(List items,int pageItems,int currentPage){

int startIndex = (currentPage-1)*pageItems;//从哪里开始取

int offset = items.size()-startIndex;//还有多少没有取过

int pageCount = offsetpageItems?pageItems:offset;//如果没有取过的大于需要显示的数,则实现显示数pageCount=pageItems,反之然;

ListProduct pageList = new ArrayList();

for(int i=startIndex,istartIndex+pageCount,i++){

pageList.add(items.get(i));

}

return pageList;

}

写了40分钟,希望对你有用

java分页查数据防止内存溢出问题

首先你要明白内存溢出的含义,内存溢出简单的来说就是内存不够了。

打个比方:内存就像一个大水缸,数据库就是水库。从数据库中查询数据就像从水库中抽水到大水缸。如果一次性抽取太多的水(超过大水缸的容量),大水缸肯定放不下(溢出了)。分页查询就好比一点一点的抽水到大水缸。jvm有垃圾回收机制,每次抽到水缸中的水可能用完后就被销毁了,水缸中的水不会一直增长下去。如果水缸中的水一直增长,就叫内存泄露。

你上面的代码不完全,不知道是否会内存溢出。如果每次循环在getComments方法中把查询的结果都放到一个List中,就可能会溢出。当然这个和数据库中的数据量和jvm的内存配置大小有关系。

做java项目时如何分页

分页最重要的是原理:

就是读取你所想要的数据,那最重要的就是sql语句的写法,如果是使用sqlserver数据库

分页的写法

select

top

10

*

from

where

id

not

in(select

top10

id

from

表)这里假定每页显示10条数据,这里读取的是第二页的数据,如果读取第三页的数据,子查询里面就变成

top

20

,总结为(页数-1)*当前页面的条数,希望能对有帮助。

java 如果所有数据是从List里取出来的 那如何进行分页

比如你有个list

list

=

new

arraylist();

你在页面拿到这个list集合,存在页面内存里面,通过数组下边每次取5条记录,来实现分页效果

java数据内存分页的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java内存分页工具类、java数据内存分页的信息别忘了在本站进行查找喔。