Existe-t-il un moyen de récupérer la clé générée automatiquement à partir d'une requête DB lors de l'utilisation d'une requête Java avec des instructions préparées. Par exemple, je sais que AutoGeneratedKeys peut fonctionner comme suit.Existe-t-il un moyen de récupérer l'ID autoincrement à partir d'une instruction préparée?
stmt = conn.createStatement();
stmt.executeUpdate(sql, Statement.RETURN_GENERATED_KEYS);
if(returnLastInsertId) {
ResultSet rs = stmt.getGeneratedKeys();
rs.next();
auto_id = rs.getInt(1);
}
Cependant. Que faire si je veux faire une insertion avec une déclaration préparée.
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);
}
Existe-t-il un moyen de le faire que je ne connais pas. Il semble à partir du javadoc que PreparedStatements ne peut pas renvoyer l'ID généré automatiquement.
returnLastInsertId où vous obtenez cette variable – dedpo