results.next() 为 false,while 循环中的 !results.next() 打印 ResultSet 已关闭
我已经尝试了一切。从执行 Class.forName() 到 connection.setAutoCommit(false) 没有任何效果:/
public static void main(String[] args) throws Exception {
String query = "SELECT * FROM StudentInfo";
String url;
try {
Class.forName("org.sqlite.JDBC");
connection = DriverManager.getConnection(url);
ps = connection.prepareStatement(query);
results = ps.executeQuery();
while (results.next()) {
print(results.getString("nameID"));
}
} catch (SQLException e) {
print(e.getMessage());
}
}
只打印出 BUILD SUCCESSFUL 而不打印任何我的数据
最佳答案
首先要考虑的是确保表不为空。
Class.forName
甚至没有分配给任何东西。
connection.setAutoCommit(false)
在这里无关紧要,因为这更多的是事务细节。对于如此简单的查询,您无需担心这一点。
我会尝试先运行一个您知道有效的查询。也许您的连接甚至不正确或可能为空,因此从未真正执行查询。这可能就是您的结果集被关闭的原因。
我还希望 print()
是来自 System.out
或实际打印的内容。
关于java - results.next() == false 并且没有打印数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57329984/