Java JDBC返回错误生成的密钥

时间:2018-03-31 22:01:08

标签: java mysql jdbc

我正在尝试从我的数据库中获取新插入的行的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)

1 个答案:

答案 0 :(得分:1)

你的代码毫无意义。

如果您正如rs.next()所述,rs.isBeforeFirst()可能不是真的,如果是rs.getInt()则会失败。

删除测试。它应该是if (rs.next())等。