0

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

包数据库.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 行。如何让所有行显示?

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

4

3 回答 3

2

这条线是原因:

conn.close();
于 2013-08-18T03:49:37.400 回答
2

在您的循环rs.next()中,您调用conn.close了 ,因此它正确打印了第一行。把conn.close你的循环带到外面。

于 2013-08-18T03:54:04.667 回答
0

只是添加,而不是单独导入所有文件sql.Connectionsql.DriverManager,sql.ResultSet和. 只需像这样导入一个文件;sql.SQLExceptionsql.Statementimport java.sql.*;

于 2013-08-18T04:14:12.750 回答