论坛首页 Java企业应用论坛

关于jdbc的一种功能的实现

浏览 20090 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2012-03-01  
游标。先得到ResultSet,然后循环一条一条取记录。
0 请登录后投票
   发表时间:2012-03-01   最后修改:2012-03-01
按照楼主大概的意思,需要取出的数据量很大,用一个sql 全部取出来,内存很有可能会挂掉。需要用分页的方式。
  如果说按照分页的方式,
也就是说如果有1OW 条记录,每次抓取取1W 来用,用完后再取下一个1W 条。直到用完为止。
按照这样一个思路,可以用 迭代器模式来设计,Iterator it = list.iterator();
如果定义抓取的跨度是1W条,应该会迭代10次,当第一次使用it.next()的时候就调用sql 去取 1 to 1W 之间的数据,
用完后再取下一个 next (10001 to 20000 的记录)。当迭代到11次的时候,你调用select * from xxx limit 100001, 110000. it.next()应该返回的是空,也就是说是迭代结束的标记
大概就这么个思路,希望对你有帮助。。
0 请登录后投票
   发表时间:2012-03-02  
只能是分页。rs 亦或是 list 都在内存里,你伤不起
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics