java學習筆記之事務

來源:互聯網
上載者:User

標籤:util   pos   指令   ace   strong   comm   相關   getc   log   

事務一. 什麼是事務?

  就是執行一組sql指令,這組sql指令要麼全部執行成功,只要有一個失敗,則全部失敗

二.事務的操作

  注意:和事務操作相關的都是Connection 的方法

     同一個事務需要同一個Connection實作類別對象

  流程:

    開啟事務:

      con.setAutoCommit(false);//關閉自動認可

                true 開啟自動認可

    提交事務

      con.commit();

    復原事務

      con.rollback();

    轉賬小案例的分析:

 2     try 3     {   //開啟事務:之後系統會將以下所有的sql的執行當做一個整體 4         int i = update:-100 5         int j = update:+100 6         if(i > 0 && j > 0){ 7            //提交事務:當所有的sql指令都執行成功之後,提交事務-> 所有對資料庫的操作將永久生效,不可更改 8            System.out.println("轉賬成功!"); 9         }10     }catch (Exception e)11     {12          //復原事務:當你的事務中出現問題,沒有全部執行執行成功,則回顧事務,這樣之前對資料庫的所有操作就被撤銷13     }

  代碼demo:

 1 public class Demo { 2     public static void main(String[] args){ 3         Connection con=null; 4         try{ 5             QueryRunner qr = new QueryRunner(); 6             con=C3P0Utils.getConnection(); 7             //開啟事務 8             con.setAutoCommit(false); 9             int re1 = qr.update("update account set money=money-? where id=?",300,342);10             int re2 = qr.update("update account set money=money+? where id=?",300,345);11             if(re1>0&&re2>0){12                 //都執行成功提交事務13                 con.commit();14             }else{15                 //執行失敗手動復原事務16                 con.rollback();17             }18         }catch(Exception e){19             //發生異常復原事務20             try {21                 con.rollback();22             } catch (SQLException e1) {23                 // TODO Auto-generated catch block24                 e1.printStackTrace();25             }26         }finally {27             try {28                 //將串連放回串連池29                 con.close();30             } catch (SQLException e) {31                 // TODO Auto-generated catch block32                 e.printStackTrace();33             }34         }35     }36 }

 

java學習筆記之事務

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.