社区
Web 开发
帖子详情
急!高分相送!OutofMemoryError
ghostsz
2003-08-26 10:45:40
用jdbc连接,分页显示,游标技术,当数据量很大时,报错。java.lang.OutofMemoryError
数据库为:Sybase 12.0
st = con.createStatement(...);
rs = st.executeQuery(sSql);
rs.absolute(i);--------到这报错
...全文
28
8
打赏
收藏
急!高分相送!OutofMemoryError
用jdbc连接,分页显示,游标技术,当数据量很大时,报错。java.lang.OutofMemoryError 数据库为:Sybase 12.0 st = con.createStatement(...); rs = st.executeQuery(sSql); rs.absolute(i);--------到这报错
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ghostsz
2003-08-26
打赏
举报
回复
哦,你的方法很好,但sybase 没有rownum这个东东,我正在找.
ejbcreate
2003-08-26
打赏
举报
回复
我建议你不要一下子把所有符合条件的记录选出来,我的意思是说:你从jsp里传几个参数,
<a href="a.jsp?NextPage=2&RowsPage=10">下一页</a>
//其中NextPage:下一页的页码;RowsPage:每页显示的记录数;
1) 这样你可以先计算出符合条件的记录数目:
String lCountSql = "select count(*) as rowcount from ("+sSql+")";
rs = st.executeQuery(lCountSql);
int iCounts = 0;
if(rs.next())
iCounts = rs.getInt("rowcount");
2)获得你传过来的参数,并做处理:
int nRowPage = request.getParameter("RowsPage")==null?0:Integer.parseInt(request.getParameter("RowsPage"));
int nPage = request.getParameter("NextPage")==null?0:Integer.parseInt(request.getParameter("NextPage"));
if(nRowPage<1) nRowPage=10;
int nPages = (iCount-1)/nRowPage+1;
if (nPages<1) nPages=1;
if (nPage>nPages) nPage=nPages;
if (nPage<1) nPage=1;
3)进一步处理,
int nStartRow = 0;
int nEndRow = nRowPage;
if(nPage>1){
nStartRow = (nPage-1)*nRowPage+1;
nEndRow = nPage*nRowPage;
}
String sSql_1 = "select a.* from (select b.*,rownum rn from("+sSql+") b where rownum <= "+nEndRow+") a where rn >= "+nStartRow;
4)取得你想要的数据:
rs = st.executeQuery(sSql_1);
while(rs.next())
{
//
}
PS:你原来的SQL语句得按一定顺序排序,所选的数据才会正确。
希望对你有所帮助。
ghostsz
2003-08-26
打赏
举报
回复
分次读数据,怎么读?
数据量是很大
cainiao_2000
2003-08-26
打赏
举报
回复
分次读数据,不要一次读完!
dmhorse
2003-08-26
打赏
举报
回复
select时选少一点就是了,你一次不会取几十万条记录吧
gisgeoboy
2003-08-26
打赏
举报
回复
在rs.absolute(i);后面加一句rs.previous();
zhwquan
2003-08-26
打赏
举报
回复
用别的方法分页了。
dmhorse
2003-08-26
打赏
举报
回复
select时选少一点就是了,你一次不会取几十万条记录吧
JVM内存模型详解,看不懂你明天就不用来了!
5.3.2 特性 ======== 运行时常量池相对于class文件常量池的另外一个特性是具备动态性,Java语言并不要求常量一定只有编译器才产生,也就是并非预置入class文件中常量池的内容才能进入方法区运行时常量池,运行期间...
Android总结
Java 反射机制是在运行状态中,对于任意一个类,都能够知道这个类中的所有属性和方法逆向代码,例如反编译与注解相结合的框架,如 Retrofit单纯的反射机制应用框架,例如 EventBus(事件总线)动态生成类框架 例如...
日常IT技巧总结
邮箱类型建议选择为POP3,IMAP虽然能够实时推送邮件新消息,不过新手不小心删除了本地邮件的话,连服务端的也会同步删除的,POP3则可以设置不删除。 改POP3就可以成功了,自动提醒邮件 无线网络怎么设置静态ip...
Android面试,给正在找工作的安卓攻城师们 ... ...
从java基础技能到安卓进阶技能,有你想象不到的全面。 ☆ JAVA技能 « 有良好的JAVA基础,熟练掌握面向对象思想: 理解面向对象: 面向对象是一种思想,是基于面向过程而言的,就是说面向对象是将功能等通过...
Android开发面试经典题目
下面是整理的Android知识点,可以平时巩固知识点,仅供复习使用。 ☆ JAVA技能 有良好的JAVA基础,熟练掌握面向对象思想: 理解面向对象: 面向对象是一种思想,是基于面向过程而言的,就是说面向对象是将功能等...
Web 开发
81,091
社区成员
341,719
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章