У меня есть следующий фрагмент кода:Как сделать этот JDBC-код более портативным?
List<List<Object>> batch = db.executeInsert("insert into Batches (batch_date,source,log_file,status) values (?, ?, ?, ?)",
now,
importZip.getAbsolutePath(),
logFile.getAbsolutePath(),
BatchStatus.IMPORTING.toString())
И возвращаемые данные, когда я запускаю его на MySQL возвращает целое число, представляющее вставленный ID, как и ожидалось. При запуске под Oracle он возвращает не переносимый объект ROWID
. У меня есть столбец идентификаторов, который в конечном итоге будет преобразован в последовательность, которая представляет идентификатор. Однако с ROWID
вы не можете многое сделать.
Я проверил код, и я звоню statement.getGeneratedKeys()
, который, как я думал, составлял весь смысл создания портативного кода. Как я могу написать это в переносном режиме, не выполняя такие вещи, как select from table where ROWID=?
, который явно НЕ переносится.
Где находится метод 'db.executeInsert()'? Почему вы задаете вопросы о поведении кода, который вы еще не опубликовали? – EJP