Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Insira usando PreparedStatement. Como faço para incrementar automaticamente o ID?


Deixe a coluna fora do INSERT declaração inteiramente . Ele será gerado pelo mecanismo de banco de dados. Sua consulta deve ser:
INSERT INTO employee (time, name)
VALUES (?, ?)

Em segundo lugar, você deve executar a inserção primeiro e, em seguida, obter as chaves do resultado.

Acredito que seu código deveria 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);

Observe que este exemplo não verifica o sucesso da instrução executada ou a existência de chaves retornadas.