网学网为需要JAVA的朋友们搜集整理了java一次性查询几十万,几百万数据解决办法相关资料,希望对各位网友有所帮助!
java查询一次性
查询几十万,几百万数据解决办法很早的时候写工具用的一个办法。 当时是用来把百万数据打包 成rar文件。所以用了个笨办法。 希望高手指导一下,有什么好方法没有啊 1、先批量查出所有数据,例子中是一万条一批。2、在查出数据之后把每次的数据按一定规则存入本地文件。3、获取数据时,通过批次读取,获得大批量数据。
此方法参见:http://yijianfengvip.blog.163.com/blog/static/175273432201191354043148/ 以下是查询数据库。按批次
查询public static void getMonthDataList() { ResultSet rs = null; Statement stat = null; Connection conn = null; List<DataBean> list = new ArrayList<DataBean>(); 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;r<runnum;r++){ System.out.println("getMonthDataList--"+datanum+" 开始查