我使用以下代码从结果集中的数据库获取数据:
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
Connection connection = DriverManager.getConnection(
"jdbc:oracle:thin:@host:1521:DB", "User","pass_01");
Statement statement = connection.createStatement();
resultset = statement.executeQuery("select * from employee");
System.out.println("Records Exist "+resultset.next());
System.out.println(resultset.getRow());
while (resultset.next()) {
System.out.println(resultset.getInt(1) + " " +
resultset.getInt(2) + " " +
resultset.getInt(3) + " " +
resultset.getString(4));
}
但是尽管数据库表中有两行,但我只得到一行。我在这里缺少什么?
最佳答案
这是因为您在循环之前调用rs.next()
。它返回一个 boolean 值,并且由于该语句,一行将失去打印的机会。
Connection connection = DriverManager.getConnection("jdbc:oracle:thin:@host:1521:DB", "User","pass_01");
Statement statement = connection.createStatement();
resultset = statement.executeQuery("select * from employee");
while (resultset.next()) {
System.out.println(resultset.getInt(1) + " " +
resultset.getInt(2) + " " +
resultset.getInt(3) + " " +
resultset.getString(4));
}
关于java - 未获取结果集中的所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17037239/