как установить целочисленное значение для уровня изоляции транзакции - PullRequest
0 голосов
/ 26 декабря 2011

когда я печатаю уровень изоляции

 DatabaseMetaData dbMetaData = conn.getMetaData();
             if (dbMetaData                         .supportsTransactionIsolationLevel(Connection.TRANSACTION_SERIALIZABLE)) {
                     System.out.println("Transaction Isolation level= "
                                     + conn.getTransactionIsolation());
                     System.out.println(dbMetaData.getDefaultTransactionIsolation());
             }

для соединения я получаю целочисленное значение 4, а для базы данных я получаю значение 2

Я хочу установить уровень изоляции какSERIALIZABLE, так как кажется, что он работает для большинства проблем (это то, что я слышал в любом случае: - /), но я не понимаю, как установить его, так как он запрашивает значение int

conn.setTransactionIsolation(level);

что делаетцелочисленные уровни относятся и в каком порядке к уровням транзакций?Я использую базу данных MySQL

1 Ответ

2 голосов
/ 26 декабря 2011

Класс Connection должен иметь все уровни изоляции, определенные как константы. Перейдите к Javadoc и вы сможете увидеть константы.

conn.setTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE );

ПРИМЕЧАНИЕ. TRANSACTION_SERIALIZABLE может быть не тем, что вам нужно. Я предлагаю вам прочитать этот урок .

выводимая на печать строка

String getReadableLevel(int isolation)
{
String result="";

switch(isolation)
{
  case Connection.TRANSACTION_SERIALIZABLE: result="TRANSACTION_SERIALIZABLE";break;
  ...//u get the idea
}
return result;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...