sql >> Base de Datos >  >> RDS >> Mysql

Insertar usando PreparedStatement. ¿Cómo autoincremento el ID?

Deje la columna fuera de INSERT declaración totalmente . Será generado por el motor de la base de datos. Su consulta debe ser:

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

En segundo lugar, primero debe realizar la inserción y luego obtener las claves del resultado.

Creo que tu código debería ser:

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);

Tenga en cuenta que este ejemplo no comprueba el éxito de la instrucción ejecutada ni la existencia de claves devueltas.