我正在尝试使用id获取插入记录的getGeneratedKeys。我不知道如何在这里调用setId(generatedKeys.getLong(1));来获取ID?我如何使它工作。

感谢您的帮助。

码:

ResultSet routesTables = dbm.getTables(null, null, "routes",
                        null);
                int route_id;
                if (routesTables.next()) {

                    PreparedStatement prepRoutesInsert = con
                            .prepareStatement("INSERT INTO routes(direction, route)"
                                    + "VALUES( ?, ?)");

                    prepRoutesInsert.setString(1, direction);
                    prepRoutesInsert.setInt(2, route);

                  prepRoutesInsert.executeUpdate();

                     try (ResultSet generatedKeys = prepRoutesInsert.getGeneratedKeys()) {
                         if (generatedKeys.next()) {
                             setId(generatedKeys.getLong(1));
                            }

                     }
}

最佳答案

生成的密钥是在数据库中自动创建的,因此无需您进行设置。
您可以从Result Set获取它

int id = generatedKeys.getInt(FIELD_INDEX);

关于java - 获取插入记录的ID,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30918258/

10-10 06:19