Lad kolonnen ude af INSERT
erklæring helt . Det vil blive genereret af databasemotoren. Din forespørgsel skal være:
INSERT INTO employee (time, name)
VALUES (?, ?)
For det andet skal du først udføre indsættelsen og derefter få nøglerne ud af resultatet.
Jeg mener, at din kode skal være:
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);
Bemærk, at dette eksempel ikke kontrollerer succesen af den udførte sætning eller eksistensen af returnerede nøgler.