• Oracle 事件


    Oracle 的事物

    事物是设么

    事物是用于高正数据的一致性,他由一组相关的dml语句组成(增加删除语句),这组语句要么全部成功要不全部失败。

    如:网上转账。

    1)设置保存点

    Savepoint a1 ;

    2)取消部分事物

    Rollback to a1 ;

    3)取消全部事物

    Rollback;

    现在执行程序

    Statement sm = conn.createStatement();

    sm.executeUpdate("update emp set sal = sal - 100 where ename = 'SCOTT'");       

    sm.executeUpdate("update emp set sal = sal + 100 where ename = 'SMITH'") ;

     

    这两句程序可以看出是一个事物,如果执行了前一个程序,扣钱,而没有执行第二个价钱的程序,则异常。

     

    加一个事物处理

    首先

       Ct.setAutoCommit(false) ;  取消自动保存

    然后在错误处理中,使用rollback。

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    
    public class s {
          private static final String DBDRIVER = "oracle.jdbc.driver.OracleDriver";
            private static final String DBURL = "jdbc:oracle:thin:@localhost:1521:mldn";
            private static final String USER = "scott" ;
            private static final String PASSWORLD = "tiger" ;
        public static void main(String[] args) throws ClassNotFoundException, SQLException {
            int a ;
            Connection conn = null;    
            try{
                Class.forName(DBDRIVER) ;
            
            //第二步 连接数据库
            conn = DriverManager.getConnection(DBURL,USER,PASSWORLD) ;
            
            conn.setAutoCommit(false) ;
            
            System.out.println(conn) ;
            Statement sm = conn.createStatement();
            sm.executeUpdate("update emp set sal = sal - 100 where ename = 'SCOTT'");  
            a = 7 / 0 ;
            sm.executeUpdate("update emp set sal = sal + 100 where ename = 'SMITH'") ;
                    
            conn.commit();
            conn.close();
            } catch (Exception e) {
                try{
                    conn.rollback() ;
                    
                } catch (Exception e1){
                    e1.printStackTrace() ;
                }
                e.printStackTrace() ;
            }
    
        }
    
    }

    只读事务

    Set transaction read only ;

  • 相关阅读:
    CF1096C Polygon for the Angle
    CF1149A Prefix Sum Primes
    CF1153C Serval and Parenthesis Sequence
    leetcode134 Gas Station
    leetcode23 Merge k Sorted Lists
    leetcode982 Triples with Bitwise AND Equal To Zero
    CF1110C Meaningless Operations
    【bzoj4567】SCOI2016背单词
    【不定期更】【友链整理】
    【bzoj2006】NOI2010超级钢琴
  • 原文地址:https://www.cnblogs.com/da-peng/p/5298910.html
Copyright © 2020-2023  润新知