Est-il un moyen de récupérer l'auto-incrémentation d'identité à partir d'une requête préparée

Est-il un moyen de récupérer l'auto clé générée à partir d'une base de requête lors de l'utilisation de java requête avec les requêtes préparées.

Par exemple, je sais AutoGeneratedKeys pouvez travailler de la façon suivante.

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 un insert 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);
} 

Est-il un moyen de faire ce que je ne sais pas. Il semble d'après la javadoc qui PreparedStatements ne peut pas retourner la génération Automatique d'ID.

  • returnLastInsertId où en êtes-vous de cette variable
InformationsquelleAutor jW. | 2009-09-03