oracle中的事务

来源:互联网 发布:电脑自动改mac地址 编辑:程序博客网 时间:2024/06/05 01:12
oracle中的事务
1.什么是事务
   事务用于保证数据的一致性,它由一组相关的dml语句组成,该组的dml语句要么
   全部成功,要么全部失败。
   DML包括:INSERT、UPDATE、DELETE。注意,select语句属于DQL(Data Query Language)。
   如:网上转账就是典型的要用事务来处理,以保证数据的一致性。
   当执行一个事务操作时(dml语句),oracle会在被作用的表上加锁,防止别的用户
   修改表的结构。

2.回退事务
      设置回滚点(保存点):       savepoint a;
      回滚命令(取消部分事务):   rollback to a;
      取消全部事务:               rollback

3.提交事务
      提交命令: commit (exit 自动提交)
       效果:确认事务变化、结束事务、删除保存点、释放锁
             其他会话可以查到事务变化后的新数据

4.java程序中如何使用事务

   Connection ct = null;
   try{
   
     Class.forName("oracle.jdbc.driver.OracleDriver");
     ct = DriverManager.getConnection
      ("jdbc:oracle:thin:@127.0.0.1:1521:ORCL","SCOTT","SCOTT");
    //事务处理,以下语句将要么全部执行成功,要么全部失败
     ct.setAutoCommit(false);
     Statement sm = ct.createStatement();
     sm.executeUpdate("update emp set (job,comm)
      =(select job,comm from emp where ename = 'SMITH') where ename = 'SCOTT'");
    
    //事务提交,如果以上语句执行抛出异常则不会提交
    ct.commit();
    }catch(Exception e){
        try{
           ct.rollback();//ct必须在try外面,不在作用域执行不了
            }catch(Exception ex){
                ex.printStackTrace();
                  }
     e.printStackTrace();  
          }finally{
     sm.close();
     ct.close();
     }

5.oracle中的事务处理
 只读事务
    只读事务是指只允许执行查询操作,而不允许dml操作的事务,
     确保用户只能取到待定时间点的数据信息。
  设置只读事务
     set transation read only;
     一旦设置,查询到的信息都是设置时间之前的。
0 0
原创粉丝点击