Как написать транзакцию, используя драйвер JDBC? - PullRequest
3 голосов
/ 07 июля 2011

Я хочу написать транзакцию с использованием jdbc в java.

Я пробовал эту простую транзакцию

"BEGIN TRANSACTION"+NL+"GO"+NL+"UPDATE table SET col='test' where id=1010"+NL+"GO"+NL+"COMMIT"

Я пытался с

NL= "\n" and NL="\r\n" and NL="\r"

но я всегда получаю следующую ошибку:

java.sql.SQLException: неправильный синтаксис рядом с 'GO'.

В sql server management studio транзакция работает

1 Ответ

7 голосов
/ 07 июля 2011

Получите ваш объект подключения. Отключить автоматическую фиксацию.

connection.setAutoCommit(false);

Оберните всю транзакцию в блок try - catch. Когда вы закончите обработку ваших вставок / обновлений, звоните:

connection.commit();

Если вы получили исключение, позвоните:

connection.rollback();

Не помещайте операторы транзакций в SQL вашего JDBC на этом этапе. Я предлагаю посмотреть на обертки, такие как Hibernate и JPA. Транзакции в JDBC могут быть довольно длинными.

...