2013-08-18 181 views
0

當我運行以下代碼時,只顯示第一行的值只有第一行顯示在查詢

package Database.H2;

package Database.H2; 

import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.ResultSet; 
import java.sql.SQLException; 
import java.sql.Statement; 

public class CreateTable { 
    public static void main (String[] args) throws ClassNotFoundException, SQLException { 
     Class.forName("org.h2.Driver"); 
     Connection conn = DriverManager.getConnection("jdbc:h2:tcp://localhost/~/test", "sa", ""); 

     Statement stmt = conn.createStatement(); 
     ResultSet rs = stmt.executeQuery("SELECT * FROM TEST"); 

     while (rs.next()) { 
      System.out.println(rs.getString("NAME")); 

      conn.close(); 
     } 
    } 
} 

手動輸入的數據庫中有5行。我怎樣才能讓所有的行顯示?

任何幫助將不勝感激。謝謝。

回答

2

此行是原因:

conn.close(); 
2

在你的循環rs.next(),你叫conn.close,所以正確打印第1行。將conn.close帶到您的循環之外。

+0

謝謝大家的答案。那幫了很多 –

0

我想補充的,而不是單獨進口的所有文件sql.Connectionsql.DriverManagersql.ResultSetsql.SQLExceptionsql.Statement。只需導入一個這樣的文件; import java.sql.*;

+0

感謝那個Juniar –