java8 + mariadb 5.6: как получить автоматически сгенерированное значение при вставке большого двоичного объекта

0

У меня есть таблица mariadb с 2 cols: rowid int pk autogenerated и imagen blob.

Используя "Предложение CallableStatement = mariaConn.prepareCall(myinsert)"; Я могу добавить новую строку с блобом в "imagen", но я не могу получить автогенерированный pk col "rowid".

С другой стороны, используя "Предложение предложения = mariaConn.prepareStatement(myinsert)"; Я могу получить автогенерированный col "rowid", но я не могу добавить blob в "imagen" (только если он пуст).

Есть ли способ сделать обе вещи одним звонком? (попытка избежать вставки Statement для получения pk, а затем CallableStatement для обновления blob).

Примечание: в Oracle довольно просто использовать CallableStatement, потому что Oracle insert имеет предложение "return" <= Я пытаюсь подражать ему на mariadb.

Заранее спасибо.

Теги:
mariadb

1 ответ

0
Лучший ответ

вам не нужно CallableStatement, чтобы вставить blob, простой подготовленный оператор

insert into table(imagen) values(?)

работает, и с этим вы можете получить автогенерируемое значение, если вы используете Statement.RETURN_GENERATED_KEYS во время подготовки и Statement.getGeneratedKeys() после выполнения. Вы также можете сделать

select last_insert_id()

в любое время, но это менее эффективно.

Нет MariaDB 5.6 кстати.

  • 0
    Спасибо @Vladislav за ваш быстрый ответ. Даже в этом случае у меня есть сомнения: как заменить "?" в заявлении, которое не имеет такой метод, как CallableStatement.setBlob? ... и я не могу сделать такую вещь, как "вставить в значения myTable (myBlob)" в одном операторе (это не строка) ... Или я ошибаюсь? Заранее спасибо. Нестор.
  • 0
    И, как говорит @Vladislav, это не mariadb 5.6, а => MariaDB [mysql]> select @@ version; + ---------------- + | @@ версия | + ---------------- + | 5.5.56-MariaDB | + ---------------- + 1 строка в наборе (0,00 сек) MariaDB [mysql]> Прошу прощения за путаницу. Нестор
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню