ResultSet 有没有选择数据行的限制??

qianxf2008 2007-12-17 09:32:14
用JDBC连接Oracle数据库,检索出60万的数据,读出一条数据,按一定的格式写入文件中,如此循环的读写,但到了20多万的时候,就不读写了,文件大小不变了。

但程序未终了。

请问ResultSet 有没有选择数据行的限制??

除了以上的方法,还有其他的方法吗??
谢谢!!
...全文
228 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
qianxf2008 2007-12-18
  • 打赏
  • 举报
回复
结贴了
进者有分。
farandfaraway 2007-12-17
  • 打赏
  • 举报
回复
statement有setMaxRows可以限制
freedom2001 2007-12-17
  • 打赏
  • 举报
回复
那你该问问文件有没有数据限制,最起码execl对于写入的行书是有限制
还有你这60W循环着写,你不觉得效率有问题吗?
victoryzll 2007-12-17
  • 打赏
  • 举报
回复
为何不这样
ResultSet->List->String->File
洪泉 2007-12-17
  • 打赏
  • 举报
回复
其实你可以想想办法,不要一次性从数据库里查询那么多的记录,分开查,写文件的时候用append的方式写。
另外可以做一些配置性的工作,记录当前写到哪条记录了,万一程序出错了,可以从上次的记录开始。
孟子E章 2007-12-17
  • 打赏
  • 举报
回复
你可以分段操作,比如将id按1000的整数倍进行划分
timbear 2007-12-17
  • 打赏
  • 举报
回复
学习中,顶一下~
qianxf2008 2007-12-17
  • 打赏
  • 举报
回复
最初的方法就是用victoryzll 说的方法,但是在客户的机器上内存溢出了,在我的机器上就如上所述了像死循环一样。

文件大小没有限制,是一般的文本文件。
读60W的纪录:想了两种方法。一种就是上面那种了。另一种就是读出一条写文件,再读写。

不知道还有没有其他的方法,有知道的请指教下。谢谢了。

看看了API,试了试farandfaraway 说的方法,生成文件了,谢谢了。

只是有点不明白的是:不知道statement有没有默认值。按照API说的,如果超出限制的行数,就撤销。是不是这个意思:假设默认值为80,检索出100条记录,
那20条记录就取不到。但按原来的方法,取到20W多时,要等待很长的时间才能取一些数据,再等待,再取。不明白是什么原因。


看看还有更好的方法没,没有的话,明天结贴。




62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧