2012-12-06 3 views
0

나는 postgres 데이터베이스에서 테이블 목록을 가져 와서 xls 파일에 기록하기 위해 다음 프로그램을 작성했습니다. xls 파일을 작성하기 위해 Apache poi 라이브러리를 포함 시켰습니다. 프로그램이 어떤 오류없이 실행되고, 또한 생성되지만 출력은 파일에 기록되지 않습니다. 파일은 단지 비어 있습니다. PLZ 파일에 결과 집합을 작성하는 데 도움이됩니다.jdbc apache poi xls 파일을 작성하십시오

package list; 
import java.io.FileNotFoundException; 
import java.io.FileOutputStream; 
import java.io.IOException; 
import java.sql.Connection; 
import java.sql.DatabaseMetaData; 
import java.sql.DriverManager; 
import java.sql.ResultSet; 
import java.sql.SQLException; 
import org.apache.poi.hssf.usermodel.HSSFWorkbook; 
import org.apache.poi.ss.usermodel.Row; 
import org.apache.poi.ss.usermodel.Sheet; 
import org.apache.poi.ss.usermodel.Workbook; 

public class List 
{ 
public static void main(String[] args) throws SQLException, FileNotFoundException, IOException 
{ 

Connection con = DriverManager.getConnection("jdbc:postgresql://localhost:5432/db","user","pass"); 

    DatabaseMetaData md = con.getMetaData(); 
    ResultSet rs = md.getTables(null, "public", "%", null); 

    try (FileOutputStream fileOut = new FileOutputStream("/home/usr/Desktop/list.xls")) 
    { 

      Workbook wb = new HSSFWorkbook(); 
      Sheet sheet1 = wb.createSheet("Table List"); 
      Row row = sheet1.createRow(250); 
      while (rs.next()) 
      { 
    row.createCell(0).setCellValue(rs.getString(3)); 

      } 
      wb.write(fileOut); 
      fileOut.close(); 

    } 
    catch(SQLException e) 
    { 
     System.out.println("could not get JDBC connection : " + e); 
    } 

    } 
    } 
+1

질문을 명확히하십시오. 당신이 의미하는 바는 또한 만들어졌지만 결과물은 쓰여지지 않았습니다. ' – Azi

+0

결과 집합의 값을 확인 했습니까? – gks

+0

예 println에 테이블 이름이 주어지면 결과 집합을 인쇄 할 수 있지만 그 결과를 파일에 쓸 수는 없습니다. – MAHI

답변

1

나는 아래와 같이 코드를 다시 작성하고 현재 작동합니다.

  int i = 0; 
       while (rs.next()) 
      { 

      Row row = sheet1.createRow(i); 

      row.createCell(0).setCellValue(rs.getString(3)); 

      i++; 
      } 
      wb.write(fileOut);