当前位置:  技术问答>java相关

请问大家编分页显示都用的什么方法?(如何读取数据库,保存结果)

    来源: 互联网  发布时间:2015-04-04

    本文导语:  今天做个项目,数据库中有几十万条记录,查询显示的结果也有几万到十几万的记录,所以我原来的分页显示就用不了了(方法太笨:又耗资源,又慢)。  不知大家都是如何进行分页的,并能够适合我这种大数据量...

今天做个项目,数据库中有几十万条记录,查询显示的结果也有几万到十几万的记录,所以我原来的分页显示就用不了了(方法太笨:又耗资源,又慢)。 
不知大家都是如何进行分页的,并能够适合我这种大数据量的情况! 
主要困扰我的问题:如何加快速度?几十万条的纪录查一次很费时间,我不想每次在不同的页码间跳转时都查一次数据库,但又不可能在第一次查询时就将所有的结果保存起来(我试过出现out of memory)。谁有好办法吗??? 

|
有本书叫 Java servlets什么的,我记不清楚拉,你到网上书店查吧,里面有个好例子!!!!!!!!!

|
CREATE PROCEDURE SP_GetauthorPage(
 @CurrentPage int,
 @PageSize int
) AS
declare @sSQL1  varchar(500)
declare @sSQL2  varchar(500)
declare @iCount  int
declare @PageCount int
declare @RecordCount int

set @iCount=@CurrentPage*@PageSize
print @iCount

select @RecordCount=Count(*) from  author
print @RecordCount

if  @RecordCount >0  
begin
if @RecordCount % @PageSize=0
begin
set @PageCount=@RecordCount/@PageSize
end
else
begin
set @PageCount=@RecordCount/@PageSize+1
end
if @CurrentPage0
begin
set @sSQL1='(select top '+ ltrim(rtrim(str(@iCount))) +' * from author order by au_lname ) as tmp'
--print @sSQL1

set @sSQL2='select top ' +ltrim(rtrim(str(@PageSize)))+' * from '+@sSQL1 +' order by au_lname desc '
print @sSQL2

EXEC(@sSQL2)
end
else
begin
select top 0 * from author
end

end
else
begin
select * from author
end
GO

|
我也在做这样的事,我用的是java servlet 网页显示,我是这样的处理的,用存储过程将记录取出来,定义一个Vector()矢量,用rs.next()!=null将rs中的记录取出来放到Vector中,再将Vector放到session中,分页显示时从session中取数据,你有足够大的内存就可以了,我的记录控制在2000条内。

还有我想问一个很简单的问题:如果查询记录有几万到几十万条,即使你实现了分页显示,就当你一页显示100条,那你至少也要一百多页,那你怎么知道你所要的在哪一页?这样做有意义么?

|
在jdbc里采用sql语句解决,每次翻页查询数据库,取出每次所需要的几条数据,一个sql轻松解决,前提是获得已经获得所有的页数,包括你的记录总数
采用vector解决对于数据量小比较合适,大数据量不行,一次查询放到session里,如果用户量很大,服务器可能撑不住

|
是不是可以这样

整个网站用一个JavaBean,里面存所有的几十万条数据(可以用Vector),所有的查询从它里面取
然后再做一个JavaBean用来访问上面一个JavaBean,提供一些方法来实现分页查询。
做一个类似监听器的程序,如果数据库有更新,就自动的更新第一个JavaBean.

缺点,如果类似的分页页面很多就特别耗内存,但只有一两个应该行吧?

    
 
 

您可能感兴趣的文章:

  • 请问在Java程序中能否直接读取ini文件,如何读取?
  • 请问readdir读取顺序是什么
  • 请问在Linux里,如何用JAVA读取内存里的PATH设置
  • 请问如何读取用dd命令生成的文件?
  • 请问 solaris支持不支持以下几种格式的读取啊
  • 请问如何在bean中读取session的值?
  • 请问linux中有没有可以读取BIOS信息的驱动程序!
  • 请问有什么软件可以在Win98或者2000下读取EXT3分区的软件?谢谢~!
  • 请问:dos下怎样读取光驱中内容呀,因为内容有20M,所以不能用软驱,
  • 请问LINUX下怎么用C语言对文件进行操作(包括新建、读取、删除、修改)
  • 请问下大家关于读取配置文件的问题
  • 请问如何让DMA方式读取硬盘啊?
  • 请问如何读取文件
  • 请问如何用Java从数据库中读取媒体文件,如图片,mpeg 等
  • 请问各位大虾: 如何用java读取一个xml文档
  • 请问文件流有没有按行读取的方法
  • 请问如何编程实现中断机制读取串口数据
  • 请问文件读取操作
  • 请问:如何读取一条纪录的所有值?
  • 请问linux下如何读取外部邮件(如my@yahoo.com的邮件)的标题和正文, 并保存为文本文件?
  • 请问我登陆FTP后用get命令保存的文件放在什么地方,如何更改它的默认保存路径?
  • 请问linux进程的哪些信息保存在内核里?哪些信息又保存在进程空间里?谢谢
  • 请问如何保存用户的信息到板子上的flash?
  • 请问修改/etc/inittab后如何保存退出啊?
  • 请问数据库驱动类应该放在哪里? iis7站长之家
  • 请问保存文章内容的字段应用什么类型的(oracle),急!!!
  • 请问 怎样保存一个 JTextArea 里的文本?
  • 请问在数据库里怎么保存text文本框里的换行呢?
  • 在登录时,系统会提示你是否保存密码,请问怎么将此提示去掉
  • 在登录时,系统会提示你是否保存密码,请问怎么将这个提示去掉呀
  • 请问大侠如何把linux安装过程中的画面保存下来?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请问那里有SYBASE的jbdb 2.0下载;jspsmartupload可以直接将文件上传到数据库,请问如何使用
  • 请问Linux数据库编程是否也可以支持通用的SQL语言进行数据库编写.
  • 请问谁有Applet连接远程Access数据库并且显示数据库内容的例子!
  • 请问在java钟如何得到数据库中的记录总数,以及如何求数据库中一个字段的和?
  • 请问,如果连接一个Mssql的数据库。并操作里面的数据。谢谢了:)
  • 请教:请问java中存放数据库中的记录,用什么数据结构?(hashtable?vector?还是别的?)
  • 请问如何查询数据库(注意:不是数据表)?
  • 请问如何将日期型的变量插入数据库中??
  • 请问用resin作服务器,如何与mysql数据库连接?
  • 请问小红帽支持中文的c,c++,数据库,阿帕奇等编程吗?
  • 请问,怎样用C语言连接SQL2000数据库?
  • 请问数据库驱动类应该放在哪里?
  • 散分:Jbuilder6开发数据库应用请问你们都用什么数据库? 免费的数据库有那些?
  • 请问什么是嵌入式数据库?(空)
  • 请问哪里有JDBC数据库下载?
  • 请问调用数据库可更新结果集的resultSet.deleteRow()不成功可能是什么原因?
  • 请问数据库有关问题,谢谢!
  • 请问某个数据库(如oracle)的jdbc驱动程序是不是在所有平台下通用?
  • 我是root,请问我如何设置用户aaa的权限,使它也可以创建属于自己的数据库文。。
  • 请问jboss+oracle文件怎样配置,数据库中文字段不为乱码
  • 请问:我知道路由器的telnet密码,但忘记了enable 密码,请问如何是好?
  • 请问最新的reahat9.0是基于什么核心的?2.4?2.6?请问那里能下载?
  • 请问:请问哪里有关于linux基本操作命令讲解的资料下载,最好是幻灯片格式的.
  • 请问,我试图用#admintool&图形工具命令来安装sun workshop5.0,为什么进入的却是用户管理界面?请问具体该如何在solaris下安装应用软件
  • 请问在Redhat 9里,我从登录就是图形介面,请问如何在图形介面内进入命令行方式呢,谢谢
  • 请问玩过SOLARIS的高手门,在不正常关机后,就不能启动到windows公用桌面了,只能在命令提示模式下了,请问怎么解决这个问题啊?急~!~!
  • 请问:我在redhat下装了bochs-2.2.1-1.rpm,.装了后,想设置一下,但找不到bochsrc.fda.bxrc,请问这个文件在哪个曰录下啊。
  • 请问:在配置Qt时,很多文档都说在.profile,.login里加东西,但是我好像没有发现有这两个文件上,请问这些文件在哪个目录下啊
  • 请问:在GCC里的C程序里的变量的声明是不是只能在前面,而且相同类型的变量的声明只能放在一起?如果不是,请问怎么样可以解决这个问题.
  • 请问各位大虾,小弟今天开始学jsp了,这学期我们有java课,所以已经下载了jdk(好象是1.2),请问我的98环境怎么配置jsp环境呀?我的jdk可以运行.java程序,别的我就不知道了....谢谢!
  • 主机是WIN2000,我用的是LUNIX,请问是否可以共享上网? 如果可以请问如何设置? 500分答谢,龟儿食言!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3