2013-08-18 86 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 –