Gibt es eine Möglichkeit, den automatisch generierten Schlüssel aus einer DB-Abfrage abzurufen, wenn eine Java-Abfrage mit vorbereiteten Anweisungen verwendet wird.Gibt es eine Möglichkeit, die Autoinkrement-ID aus einer vorbereiteten Anweisung abzurufen
Zum Beispiel kann ich AutoGeneratedKeys wie folgt arbeiten.
stmt = conn.createStatement();
stmt.executeUpdate(sql, Statement.RETURN_GENERATED_KEYS);
if(returnLastInsertId) {
ResultSet rs = stmt.getGeneratedKeys();
rs.next();
auto_id = rs.getInt(1);
}
Jedoch. Was, wenn ich eine Einfügung mit einer vorbereiteten Aussage machen möchte.
String sql = "INSERT INTO table (column1, column2) values(?, ?)";
stmt = conn.prepareStatement(sql);
//this is an error
stmt.executeUpdate(Statement.RETURN_GENERATED_KEYS);
if(returnLastInsertId) {
//this is an error since the above is an error
ResultSet rs = stmt.getGeneratedKeys();
rs.next();
auto_id = rs.getInt(1);
}
Gibt es eine Möglichkeit, dies zu tun, über die ich nicht weiß. Es scheint aus dem Javadoc, dass PreparedStatements die Auto Generated ID nicht zurückgeben kann.
returnLastInsertId wo bekommen Sie diese Variable – dedpo