您好,感谢您的阅读。我试图检索新插入数据的 ID,但总是得到一个空的 ResultSet。
Connection con = main.getCon();
String sqlCommand = "Insert Into Relations(name,explanation) values(?,?)";
PreparedStatement state =
con.prepareStatement(sqlCommand,Statement.RETURN_GENERATED_KEYS);
state.setString(1,name.getText());
state.setString(2,explanation.getText());
int affectedRows = state.executeUpdate();
assert (affectedRows>0);
ResultSet rs = state.getGeneratedKeys();
assert rs.next();
int instertedID= rs.getInt("ID");
Run Code Online (Sandbox Code Playgroud)
不知道出了什么问题。在线检查了不同的样本,但无法弄清楚我的错误是什么。我也尝试过使用 Statement,但也没有运气。
第 1 点:代码运行顺利,我的数据已插入数据库。第2点:网上有针对这种情况的示例,您可以在这里查看:
https: //www.baeldung.com/jdbc-returning- generated -keys
我刚刚意识到我的 ResultSet 不为空,我在使用调试器时遇到问题,这就是为什么我认为它是空的。正如 Mark Rotteveel 在评论中提到的,问题出在“assert”语句上。