JDBC Oracle事务隔离(并发控制)

来源:互联网 发布:java自增id生成策略 编辑:程序博客网 时间:2024/05/22 13:09
事务隔离(并发控制)

事务隔离级别:一个事务对数据库的修改与并行的另一个事务的隔离程度。

两个并发事务同时访问数据库表相同的行时,可能存在以下三个问题:


1、幻想读:事务T1读取一条指定where条件的语句,返回结果集。此时事务T2插入一行新记录,恰好满足T1的where条件。然后T1使用相同的条件再次查询,结果集中可以看到T2插入的记录,这条新纪录就是幻想。
2、不可重复读取:事务T1读取一行记录,紧接着事务T2修改了T1刚刚读取的记录,然后T1再次查询,发现与第一次读取的记录不同,这称为不可重复读。
3、脏读:事务T1更新了一行记录,还未提交所做的修改,这个T2读取了更新后的数据,然后T1执行回滚操作,取消刚才的修改,所以T2所读取的行就无效,也就是脏数据。


为了处理问题,SQL标准定义了以下几种事务隔离级别


设置事务的隔离级别

try {    con.setTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED);    consetAutoCommit(false);      //执行SQL语句    connection.commit();    } catch (SQLException e) {    connection.rollback();    e.printStackTrace();}



原创粉丝点击