如何设置事务隔离级别的整数值

时间:2011-12-26 19:07:55

标签: java jdbc

当我打印隔离级别时

 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 个答案:

答案 0 :(得分:2)

Connection类应该将所有隔离级别定义为常量。转到Javadoc,您可以看到常量。

conn.setTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE );

注意:TRANSACTION_SERIALIZABLE可能不是您想要的。我建议你阅读this tutorial

打印可读字符串

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

switch(isolation)
{
  case Connection.TRANSACTION_SERIALIZABLE: result="TRANSACTION_SERIALIZABLE";break;
  ...//u get the idea
}
return result;
}