只有第一行显示在查询上

时间:2013-08-18 03:47:05

标签: java database h2

当我运行以下代码时,只显示第一行的值

包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行。如何显示所有行?

任何帮助将不胜感激。谢谢。

3 个答案:

答案 0 :(得分:2)

这一行是原因:

conn.close();

答案 1 :(得分:2)

在循环rs.next()中,您调用了conn.close,因此它会正确打印第一行。将conn.close置于循环之外。

答案 2 :(得分:0)

只需添加,而不是单独导入所有文件sql.Connectionsql.DriverManagersql.ResultSetsql.SQLExceptionsql.Statement。只需导入一个这样的文件; import java.sql.*;