Получить id записи, только что вставленной в базу данных JAVA DB (Derby

я подключаюсь к базе данных JAVA DB с JDBC и хочу получить идентификатор (который находится на автоматическом приращении) последней вставленной записи.

Я вижу, что это общий вопрос, но я вижу решений используя, например, MS SQL Server, что эквивалентно JAVA DB?

2 ответов


для этого не нужно использовать SQL СУБД.

что это getGeneratedKeys() для.

, когда подготовка заявления вы передаете имя(имена) автоматически сгенерированных столбцов, которые затем можно получить с помощью getGeneratedKeys()

PreparedStatement pstmt = connection.prepareStatement(
     "insert into some_table (col1, col2, ..) values (....)", 
      new String[] { "ID_COLUMN"} ); 

pstmt.executeUpdate();

ResultSet rs = pstmt.getGeneratedKeys(); // will return the ID in ID_COLUMN


вы можете получить то, что ищете, используя функцию IDENTITY_VAL_LOCAL. (Ссылка)

эта функция должна возвращать " самое последнее назначенное значение столбца идентификатора для соединения, где назначение произошло в результате инструкции вставки одной строки с помощью предложения VALUES."

стоит отметить, что эта функция будет возвращать DECIMAL (31,0), независимо от фактического типа данных соответствующего столбец идентификаторов.

кроме того, этот только работает для однорядных вставок, содержащих предложение VALUES.