sql >> Databasteknik >  >> RDS >> Mysql

Infoga med PreparedStatement. Hur ökar jag ID automatiskt?

Lämna kolumnen utanför INSERT uttalande helt . Den kommer att genereras av databasmotorn. Din fråga bör vara:

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

För det andra måste du utföra infogningen först och sedan ta ut nycklarna ur resultatet.

Jag tror att din kod bör vara:

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

Observera att det här exemplet inte kontrollerar framgången för den körda satsen eller förekomsten av returnerade nycklar.



  1. Designa en Microsoft T-SQL Trigger

  2. Välj n:te percentilen från MySQL

  3. Hur väljer man den första raden för varje grupp i MySQL?

  4. PDF skapad med FPDF och hur man sparar och hämtar pdf:en