Порядок заявления JDBC - PullRequest
       3

Порядок заявления JDBC

0 голосов
/ 03 августа 2011

Я работаю над устаревшим веб-приложением jsp, которое использует JDBC и встроенные операторы SQL.

У нас проблема с неверными данными в базе данных, и мне интересно, возможно ли, чтобы два оператора быливыполняется в том порядке, в каком они указаны в коде.т. е. если у нас есть два оператора обновления, которые выполняются, как показано в следующем примере.

String sql1 = "update table set x = y";
String sql2 = "update table set z = a";
Statement statement = conn.createStatement();
db_wrapper.runSQL(sql1,statement);
db_wrapper.runSQL(sql2,statement);

Возможно ли, что при большой нагрузке второй оператор sql будет выполняться перед первым в базе данных.

При установке у нас чаще всего возникают проблемы с запуском базы данных oracle.

Также в данный момент код не использует транзакции.

Ответы [ 2 ]

2 голосов
/ 03 августа 2011

Нет, этот поток будет вызывать драйвер Oracle в таком порядке, нет явного переупорядочения вызовов методов, переупорядочения или запросов в JDBC.

Однако:

  1. Вы уверены, что ваш код не буферизует вызовы к базе данных и, в конечном итоге, выполняет ее в другом порядке или отправляет ее в другие соединения? Если он отправляет запросы в разные соединения, может случиться так, что одно из этих соединений, выполняющее второй оператор, прервется раньше первого и произойдет сбой первого.
  2. Проверяете ли вы возврат ваших звонков? Или исключение? Может ли быть так, что первый запрос просто не выполняется по какой-либо причине, которая не проверяется вашим кодом? Может быть catch'd, войти в систему где-то малоизвестно (например, из системы) и никогда не принимал всерьез?
  3. Водитель может действовать странным образом. Хотя я не знаю, с какой версией Oracle вы работаете, драйверы JDBC довольно свободно делают то, что хотят.
  4. При большой нагрузке JSP будет выполнять несколько потоков, поэтому, если код не будет правильно синхронизирован или запрос не будет правильно определен, может произойти ряд странных вещей.
0 голосов
/ 03 августа 2011

Данные должны отображаться в том порядке, в котором вы выполняете обновление.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...