2017-02-17 3 views
0

Мне нужно вставить ~40K records в 2 таблицы (скажем table1 & table2) в базу данных.Как навалом вставить в db, если другая вставка выполнена успешно?

Вставка в таблице2 условна. Запись должна быть вставлена ​​в таблицу2 тогда и только тогда, когда запись вставлена ​​в таблицу1 успешно.

Можно ли это сделать в партии? Я использую драйвер JDBC. Я использую Oracle 10g XE.

Каков наилучший способ сделать это? Должен ли я пойти на объединение db с многопоточными?

+0

Один из способов - создать sql-процедуру и выполнить ее из java .... – Ahmed

+0

Почему вы используете мост JDBC-ODBC, когда есть драйвер Oracle JDBC, который намного лучше? –

+0

@MarkRotteveel, я использую драйвер JDBC. Это была ошибка с моей стороны. Спасибо за выделение. –

ответ

0

Метод executeUpdate вернет количество строк, на которые влияет ваш оператор. Может использовать это как сравнение, чтобы проверить, что он успешно выполнен.

0

Мое предложение выполняет бизнес-логику для операции как можно ближе к данным. Это будет означать, что процедура PL/SQL будет действовать как API для функциональности, которую вы хотите выполнить.

Это сделает ваш код тривиальным; простой вызов процедуры базы данных, которая вернет что-то, дающее вам результат.

Вся логика, применяемая к данным, выполняется кодом, разработанным почти исключительно для управления данными. В отличие от Java, которая может манипулировать данными, но не так же, как PL/SQL. Кстати, это, скорее всего, будет намного быстрее (эта презентация на Youtube очень информативна, если немного длинная - https://www.youtube.com/watch?v=8jiJDflpw4Y)

Смежные вопросы