ítem una tabla seleccionado mostrar llenar guardar enlazar datos con como java sql mysql jdbc

tabla - mostrar datos en una jtable java netbeans



Obtener índice de filas insertadas de una base de datos MySQL (3)

Estoy usando Java (jdbc) para interactuar con una base de datos MySQL. Tengo una tabla con un índice primario que es AUTO INCREMENTO. Cuando inserto una fila, necesito obtener el índice que acaba de recibir. ¿Cómo puedo hacer eso?


Alternativamente, usando Spring JDBC se vería así:

Map<String, Object> map = new HashMap<String, Object>(); map.put("column1", "test"); map.put("column2", Boolean.TRUE); SimpleJdbcInsert insert = new SimpleJdbcInsert(template).withTableName("table").usingGeneratedKeyColumns("id"); int id = insert.executeAndReturnKey(map).intValue();


De: http://dev.mysql.com/doc/refman/5.0/en/connector-j-usagenotes-basic.html#connector-j-usagenotes-last-insert-id

stmt.executeUpdate( "INSERT INTO autoIncTutorial (dataField) " + "values (''Can I Get the Auto Increment Field?'')", Statement.RETURN_GENERATED_KEYS); // // Example of using Statement.getGeneratedKeys() // to retrieve the value of an auto-increment // value // int autoIncKeyFromApi = -1; rs = stmt.getGeneratedKeys(); if (rs.next()) { autoIncKeyFromApi = rs.getInt(1); } else { // throw an exception from here } rs.close(); rs = null;


Gracias a John Boker por su excelente respuesta.

Si desea utilizar una RETURN_GENERATED_KEYS preparada , aún puede usar RETURN_GENERATED_KEYS , pero debe aplicar los comandos de manera diferente:

PreparedStatement ps = mysql.prepareStatement( "INSERT INTO myTable (colA, colB, colC) VALUES (?, ?, ?)", Statement.RETURN_GENERATED_KEYS ); ps.setString(1, "My text"); ps.setTimestamp(2, new java.sql.Timestamp(new java.util.Date().getTime());); ps.setInt(3, 5150); ps.executeUpdate(); ResultSet results = ps.getGeneratedKeys(); results.next(); // Assume just one auto-generated key; otherwise, use a while loop here System.out.println(results.getInt(1)); // there should only be 1 column in your results: the value of the auto-generated key

  1. Agregue el RETURN_GENERATED_KEYS en la función prepareStatement() .
  2. Obtenga resultados no de statement.executeUpdate() sino de statement.getGeneratedKeys() .