当我运行以下代码时,只显示第一行的值
包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行。如何显示所有行?
任何帮助将不胜感激。谢谢。
答案 0 :(得分:2)
这一行是原因:
conn.close();
答案 1 :(得分:2)
在循环rs.next()
中,您调用了conn.close
,因此它会正确打印第一行。将conn.close
置于循环之外。
答案 2 :(得分:0)
只需添加,而不是单独导入所有文件sql.Connection
,sql.DriverManager
,sql.ResultSet
,sql.SQLException
和sql.Statement
。只需导入一个这样的文件; import java.sql.*;