2

此代码非常适用于 35k 以下的记录并在工作表上写入数据,但如果记录存在 45k 性能会减慢并死掉,没有任何异常或错误,并且不会创建任何文件。

我该如何克服这个问题?

public void dbConnect(String driver_connect_string, String db_connect_string, String db_userid, String db_password){
    try{ 

        //database connectivity

        Statement statement = conn.createStatement();

        String queryString = propq.getProperty("Query");
        ResultSet rs = statement.executeQuery(queryString);


        OPCPackage pkg = OPCPackage.open(new File(("sourceFile")));
         XSSFWorkbook wb_template;
         wb_template = new XSSFWorkbook(pkg);
         System.out.println("package loaded");

         Sheet  sheet = wb_template.getSheetAt(0);
         Row row = null;
         int index = 1;
         while (rs.next()) {
             try{
              row = sheet.createRow(index);
              row.createCell(0).setCellValue(rs.getString(1));    
              row.createCell(1).setCellValue(rs.getString(2));    
              row.createCell(2).setCellValue(rs.getString(3)); 
              .
              .
              row.createCell(23).setCellValue(rs.getString(25));

              System.out.println(index);

             }
             catch(Exception e){
                 System.out.println(e);
             }
              index++;
          }

         FileOutputStream out = new FileOutputStream(new File(("destFile")));
         wb_template.write(out);
         out.flush();
         out.close();  

    }catch(Exception e){
        e.printStackTrace();
    }
}
4

0 回答 0