我正在尝试从我的数据库中获取新插入的行的ID。 经过调试并逐步遵循代码,但它始终返回" 0"值。
HashMap<String, String> response = new HashMap<String, String>();
Integer generatedId = 0;
try {
ps = con.prepareStatement(query, Statement.RETURN_GENERATED_KEYS);
ps.executeUpdate();
rs = ps.getGeneratedKeys();
rs.next();
if (rs.isBeforeFirst()) {
generatedId = rs.getInt(1);
}
} catch (SQLException e) {
System.out.println(e.getMessage());
response.put("STATUS", "ERROR");
}
代码位于名为update的静态方法中,该方法接受带有SQL查询字符串的字符串。
public static HashMap<String, String> update(String query)
答案 0 :(得分:1)
你的代码毫无意义。
如果您正如rs.next()
所述,rs.isBeforeFirst()
可能不是真的,如果是rs.getInt()
则会失败。
删除测试。它应该是if (rs.next())
等。