网站大量收购独家精品文档,联系QQ:2885784924

java一次性查询几十万,几百万数据解决办法.docx

java一次性查询几十万,几百万数据解决办法.docx

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
java一次性查询几十万,几百万数据解决办法

java一次性查询几十万,几百万数据解决办法 分类:java数据库2012-02-27 09:0816609人阅读评论(27)收藏举报java查询一次性查询几十万,几百万数据解决办法很早的时候写工具用的一个办法。当时是用来把百万数据打包成rar文件。所以用了个笨办法。希望高手指导一下,有什么好方法没有啊1、先批量查出所有数据,例子中是一万条一批。2、在查出数据之后把每次的数据按一定规则存入本地文件。3、获取数据时,通过批次读取,获得大批量数据。此方法参见:/blog/static/175273432201191354043148/以下是查询数据库。按批次查询public static void getMonthDataList() {ResultSet rs = null;Statement stat = null;Connection conn = null;ListDataBean list = new ArrayListDataBean();try {conn = createConnection();if(conn!=null){SimpleDateFormat sdf = new SimpleDateFormat(yyyy-MM-dd);SimpleDateFormat timesdf = new SimpleDateFormat(yyyy-MM-dd HH:mm:ss);String nowDate = sdf.format(new Date());Config.lasttimetext = timesdf.format(new Date());String lastDate = sdf.format(CreateData.addDaysForDate(new Date(), 30));stat = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);int lastrow = 0;int datanum = 0;String countsql = SELECT count(a.id) FROM trip_special_flight a + where a.dpt_date = to_date(+nowDate+,yyyy-mm-dd) +and a.dpt_date = to_date(+lastDate+,yyyy-mm-dd) and rownum+lastrow+ order by a.get_time desc;rs = stat.executeQuery(countsql);while (rs.next()) {datanum = rs.getInt(1);}int onerun = 10000;int runnum = datanum%onerun==0?(datanum/onerun):(datanum/onerun)+1;for(int r =0;rrunnum;r++){System.out.println(getMonthDataList--+datanum+ 开始查询第+(r+1)+批数据);String sql = SELECT * FROM (SELECT rownum rn, a.dpt_code, a.arr_code,a.dpt_date,a.airways,a.flight, +a.cabin,a.price FROM trip_special_flight a + where a.dpt_date = to_date(+nowDate+,yyyy-mm-dd) +and a.dpt_date = to_date(+lastDate+,yyyy-mm-dd) order by rownum asc) WHERE rn +lastrow;stat.setMaxRows(onerun);stat.setFetchSize(1000);rs = stat.executeQuery(sql);String text = ;int i = 1;while (rs.next()) {text += rs.getString(2)+|+rs.getString(3)+|+rs.getDate(4)+|+rs.getString(5)+|+rs.getString(6)+|+rs.getString(7)+|+rs.getString(8)+||;if(i%1000==0){FileUtil.appendToFile(Config.tempdatafile, text);text = ;}i++;}if(text.length()10){FileUtil.appendToFile

文档评论(0)

xy88118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档