Я пытаюсь получить id
вставленной строки. Currenly Я не получаю id
назад, и получаю исключение java.sql.SQLException: Column 'route_id' not found.
, но когда я запрашиваю его, как в прокомментированном коде, я получаю его, но он имеет все строки в таблице routes
. Как я могу это исправить?Получить идентификатор вставленной строки
Я ценю любую помощь.
Код:
if (routesTables.next()) {
PreparedStatement prepRoutesInsert = con.prepareStatement(
"INSERT INTO routes(direction, route)"
+ "VALUES(?, ?)",
Statement.RETURN_GENERATED_KEYS);
prepRoutesInsert.setString(1, direction);
prepRoutesInsert.setInt(2, route);
prepRoutesInsert.executeUpdate();
// PreparedStatement prepRoutesInsert2 =
// con.prepareStatement(
// "SELECT route_id from routes");
// ResultSet rs = prepRoutesInsert2.executeQuery();
// while(rs.next()){
// int route_id2 = rs.getInt("route_id");
// System.out.println(route_id2);
// }
try (ResultSet generatedKeys = prepRoutesInsert
.getGeneratedKeys()) {
if (generatedKeys.next()) {
int id = generatedKeys.getInt("route_id");
System.out.println("The id is: " + id);
}
}
}
маршруты таблице:
stt.execute("CREATE TABLE IF NOT EXISTS routes ("
+ "route_id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,"
+ "direction VARCHAR(30) NOT NULL, "
+ "route INT(11) NOT NULL)");
'generatedKeys.getInt ("route_id")' ==> 'generatedKeys.getInt (1)' или 'generatedKeys.getInt («GENERATED_KEY») 'исправит эту проблему. – dasblinkenlight
Да, он вас очень благодарен;) – MrPencil