最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Mysql事務操作失敗如何解決

 更新時間:2017年07月12日 14:14:37   作者:sinkingboat  
這篇文章主要介紹了Mysql事務操作失敗如何解決的相關資料,需要的朋友可以參考下

Mysql事務操作失敗如何解決

事務的原子性 :事務是數(shù)據(jù)庫的邏輯工作單位,事務中包含的各操作要么都做,要么都不做 。

要實現(xiàn)事務的原子性,單單靠一條commit或是rollback命令還是不行的,因為例如commit命令它只是將一個事務中執(zhí)行成功的DML語句提交給數(shù)據(jù)庫里。如果要實現(xiàn)事務的原子性,則就需要commit和rollback命令配合上程序上的一個業(yè)務邏輯才能可以,具體業(yè)務邏輯代碼如下示例代碼:

1.現(xiàn)象

     程序中打開了事務進行插入,但是沒有commit,表中的數(shù)據(jù)已經(jīng)存在,就是回滾也不能刪除插入的數(shù)據(jù)

2.原因

    本表的Storage Engine 為myisam,不是innoDB,不支持事務處理 rollback()

3.解決方法

    使用 alter table xxxx engine = innoDB ; 將表改為 InnoDB 引擎,結果回滾正常。

4.代碼

 private void testCrud() {
     Connection conn = null;      //連接對象
     PreparedStatement pstmt = null;  //預編譯的SQL語句對象
      try{
        //加載MySQL驅動程序
        Class.forName("com.mysql.jdbc.Driver");
        //連接字符串
        String url = "jdbc:mysql://localhost:3306/test";
        //建立數(shù)據(jù)庫連接
        conn = DriverManager.getConnection(url,"root","");
        //設置事務的隔離級別
        // conn.setTransactionIsolation(Connection. TRANSACTION_REPEATABLE_READ);
        //設置自動提交為false,開始事務
        conn.setAutoCommit(false);
        //帶參數(shù)的更新語句
        String sql = "INSERT INTO user_info (username ,password ,age )values(?,?,?)";
        //準備語句
        pstmt = conn.prepareStatement(sql);
        //綁定參數(shù),執(zhí)行更新語句,將張三的賬戶金額減去1000元
        pstmt.setString(1, "zhangui");
        pstmt.setString(2, "1111");
        pstmt.setInt(3, 300);
        pstmt.execute();
        
        //綁定參數(shù),執(zhí)行更新語句,將李四的賬戶金額增加1000元
        // pstmt.setString(1, "zzzzzzzzzzzzzzzzz"); //綁定了非法參數(shù)
        //pstmt.setString(2, "1111111111");
        //pstmt.setInt(3, 500);
        //pstmt.execute(); //將拋出SQL異常
        //提交事務
        //conn.commit();
        System.out.println("事務已提交,轉賬成功!");
        //關閉語句、連接
        pstmt.close(); conn.close();
      }catch(Exception e){
        try{
          conn.rollback();  //回滾事務
          System.out.println("事務回滾成功,沒有任何記錄被更新!");
        }catch(Exception re){
          System.out.println("回滾事務失??!");
        }
        e.printStackTrace();
      }finally{
        if(pstmt!=null) try{pstmt.close();}catch(Exception ignore){}
        if(conn!=null) try{conn.close();}catch(Exception ignore){}
      }
    
  }

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關文章

  • mysql按照自定義(指定順序)排序的方法實例

    mysql按照自定義(指定順序)排序的方法實例

    在我們寫業(yè)務代碼的時候,會經(jīng)常碰見排序方式既不是正序也不是倒序,下面這篇文章主要給大家介紹了關于mysql按照自定義(指定順序)排序的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-06-06
  • mysql5.7使用變量進行分組排名并實現(xiàn)篩選

    mysql5.7使用變量進行分組排名并實現(xiàn)篩選

    這篇文章主要介紹了mysql5.7使用變量進行分組排名并實現(xiàn)篩選方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • MySQL中的連接查詢(等值連接)

    MySQL中的連接查詢(等值連接)

    這篇文章主要介紹了MySQL中的連接查詢(等值連接),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • MYSQL中查詢LONGBLOB類型數(shù)據(jù)的大小的詳細示例

    MYSQL中查詢LONGBLOB類型數(shù)據(jù)的大小的詳細示例

    在MySQL中,LONGBLOB?是一種二進制大對象(BLOB)數(shù)據(jù)類型,用于存儲大量的二進制數(shù)據(jù),但是,LONGBLOB?數(shù)據(jù)類型本身并不直接存儲數(shù)據(jù)的大小(長度),它存儲的是二進制數(shù)據(jù)的實際內(nèi)容,這篇文章主要介紹了MYSQL中怎么查詢LONGBLOB類型數(shù)據(jù)的大小,需要的朋友可以參考下
    2024-06-06
  • MySQL刪除表數(shù)據(jù)與MySQL清空表命令的3種方法淺析

    MySQL刪除表數(shù)據(jù)與MySQL清空表命令的3種方法淺析

    刪除現(xiàn)有MySQL表非常容易,但是刪除任何現(xiàn)有的表時要非常小心,因為刪除表后丟失的數(shù)據(jù)將無法恢復,下面這篇文章主要給大家介紹了關于MySQL刪除表數(shù)據(jù)與MySQL清空表命令的3種方法的相關資料,需要的朋友可以參考下
    2022-08-08
  • MySQL5.6.31 winx64.zip 安裝配置教程詳解

    MySQL5.6.31 winx64.zip 安裝配置教程詳解

    這篇文章主要介紹了MySQL5.6.31 winx64.zip 安裝配置教程詳解,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-02-02
  • Mysql讀寫分離過期常用解決方案

    Mysql讀寫分離過期常用解決方案

    這篇文章主要介紹了Mysql讀寫分離過期常用解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-09-09
  • Windows?本地安裝?Mysql8.0圖文教程

    Windows?本地安裝?Mysql8.0圖文教程

    本文介紹了如何在Windows本地安裝Mysql8.0。從下載Mysql8.0安裝包,運行安裝程序,配置初始設置到啟動Mysql服務等詳細步驟進行了講解。
    2023-04-04
  • MySQL數(shù)據(jù)庫優(yōu)化技術之索引使用技巧總結

    MySQL數(shù)據(jù)庫優(yōu)化技術之索引使用技巧總結

    這篇文章主要介紹了MySQL數(shù)據(jù)庫優(yōu)化技術之索引使用方法,結合實例形式總結分析了MySQL表的優(yōu)化、索引設置、SQL優(yōu)化等相關技巧,非常具有實用價值,需要的朋友可以參考下
    2016-07-07
  • mysql數(shù)據(jù)存儲過程參數(shù)實例詳解

    mysql數(shù)據(jù)存儲過程參數(shù)實例詳解

    這篇文章主要介紹了mysql數(shù)據(jù)存儲過程參數(shù)實例詳解,小編覺得挺不錯的,這里分享給大家,供需要的朋友參考。
    2017-10-10

最新評論

克拉玛依市| 北碚区| 资阳市| 蒲城县| 蕲春县| 晋宁县| 介休市| 宁晋县| 项城市| 龙岩市| 工布江达县| 儋州市| 镇康县| 达拉特旗| 岑溪市| 宣武区| 安西县| 宝应县| 淮北市| 习水县| 漯河市| 正镶白旗| 额尔古纳市| 广汉市| 兴业县| 中阳县| 平江县| 昌乐县| 礼泉县| 乌拉特前旗| 永吉县| 鸡东县| 江达县| 嵊州市| 宜城市| 蒙自县| 沂南县| 翁源县| 香格里拉县| 都昌县| 襄城县|