Mysql
 sql >> Base de données >  >> RDS >> Mysql

Insérez à l'aide de PreparedStatement. Comment puis-je incrémenter automatiquement l'ID ?

Laissez la colonne en dehors de INSERT déclaration entièrement . Il sera généré par le moteur de base de données. Votre requête doit être :

INSERT INTO employee (time, name)
VALUES (?, ?)

Deuxièmement, vous devez d'abord effectuer l'insertion, puis extraire les clés du résultat.

Je crois que votre code devrait être :

PreparedStatement preparedStatement = 
    connect.prepareStatement("INSERT into employee (time, name) VALUES (?,?)", 
    Statement.RETURN_GENERATED_KEYS);

preparedStatement.setTimestamp(1, 
    new java.sql.Timestamp(new java.util.Date().getTime()));                           
preparedStatement.setString(2, "Test");

preparedStatement.executeUpdate();

ResultSet tableKeys = preparedStatement.getGeneratedKeys();
tableKeys.next();
int autoGeneratedID = tableKeys.getInt(1);

Notez que cet exemple ne vérifie pas le succès de l'instruction exécutée ou l'existence des clés renvoyées.