Java 如何将resultset的数据保存在多个文件中?

Java 如何将resultset的数据保存在多个文件中?,java,jdbc,apache-poi,Java,Jdbc,Apache Poi,我写了一个程序,从数据库中读取数据并写入excel。我的代码如下 public String ReadRows(String query) throws SQLException { FileOutputStream fileOut = null; File file=new File("src/MyEcel.xlsx"); String returnString = ""; Connection c = null; int row = 1;

我写了一个程序,从数据库中读取数据并写入excel。我的代码如下

public String ReadRows(String query) throws SQLException 
   {
    FileOutputStream fileOut = null;
    File file=new File("src/MyEcel.xlsx");
    String returnString = "";
    Connection c = null;
    int row = 1;

    XSSFWorkbook workbook = new XSSFWorkbook();
    try {
        Class.forName("org.postgresql.Driver");
        c = DriverManager.getConnection("url",username,password);
        c.setAutoCommit(false);
        System.out.println("Opened database successfully");
        Statement stmt = c.createStatement();
        XSSFSheet sheet = workbook.createSheet("NewData");           
        ResultSet rs = stmt.executeQuery(query);         

        while(rs.next())
        {

           myRow= sheet.createRow(row); 
           row++;
           for (int col = 1; col<ColumnCount(); col++)
           {
              if (rs.getObject(col) == null) 
                {   //code;
                } 
                else
                {   //code                     
                }                   
           }               
            fileOut = new java.io.FileOutputStream(file);
             workbook.write(fileOut);
             fileOut.flush();
            System.out.println("The size of file is "+file.length());
             fileOut.close();                
            //java.awt.Desktop.getDesktop().open(file);       
       }   
        catch(Exception ex)
          {// ex.printtrace();
             }
publicstringreadrows(字符串查询)抛出SQLException
{
FileOutputStream fileOut=null;
File File=新文件(“src/MyEcel.xlsx”);
字符串returnString=“”;
连接c=null;
int行=1;
XSSFWorkbook工作簿=新XSSFWorkbook();
试一试{
Class.forName(“org.postgresql.Driver”);
c=DriverManager.getConnection(“url”、用户名、密码);
c、 设置自动提交(错误);
System.out.println(“已成功打开数据库”);
语句stmt=c.createStatement();
XSSFSheet sheet=workbook.createSheet(“NewData”);
ResultSet rs=stmt.executeQuery(查询);
while(rs.next())
{
myRow=sheet.createRow(行);
行++;

对于(int col=1;col,我将保留两个计数器变量——一个用于保存写入当前电子表格的行数,例如,
rowswrited
,另一个用于保存到目前为止已完成的电子表格数,例如,
spreadsheetswrited


while
循环中,每次迭代时递增
rowswrited
。如果
rowswrited
已达到
100
,则写出当前电子表格,将
rowswrited
重置为
0
,并递增
spreadsheetswrited
。然后,如果您不在上一次迭代中,则创建一个新的电子表格这个新的电子表格应该是一个不同的文件名,这就是
电子表格编写
的地方。它可以被称为
“src/MyExcel1.xlsx”
“src/MyExcel2.xlsx”
等,但这当然取决于您。请确保在循环完成后关闭最后一个电子表格。

“我需要一个文件,每个文件中只包含100行”你是说有很多不同的电子表格文件,每一个都有100行,还是一个电子表格,有很多表格,每一个都有100行,或者其他什么?对不起!!很多电子表格,每一个都有100行