麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 數據庫 > MySQL > 正文

Mysql事務操作失敗如何解決

2024-07-24 13:13:55
字體:
來源:轉載
供稿:網友

Mysql事務操作失敗如何解決

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

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

1.現象

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

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";        //建立數據庫連接        conn = DriverManager.getConnection(url,"root","");        //設置事務的隔離級別        // conn.setTransactionIsolation(Connection. TRANSACTION_REPEATABLE_READ);        //設置自動提交為false,開始事務        conn.setAutoCommit(false);        //帶參數的更新語句        String sql = "INSERT INTO user_info (username ,password ,age )values(?,?,?)";        //準備語句        pstmt = conn.prepareStatement(sql);        //綁定參數,執行更新語句,將張三的賬戶金額減去1000元        pstmt.setString(1, "zhangui");        pstmt.setString(2, "1111");        pstmt.setInt(3, 300);        pstmt.execute();                //綁定參數,執行更新語句,將李四的賬戶金額增加1000元        // pstmt.setString(1, "zzzzzzzzzzzzzzzzz"); //綁定了非法參數        //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教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产一国产精品一级毛片 | 91久久久久久久久久久久久 | 久久久久久久久久久久久久国产 | 精品一区二区三区欧美 | 女人叉开腿让男人桶 | 欧美一级做a | 亚洲资源在线 | 在线观看免费毛片视频 | 久章草影院 | av在线免费看网址 | 午夜视频你懂的 | 精品国产一区二区三区久久久蜜 | 九九热精品视频在线播放 | 一区在线看 | 久草在线高清视频 | 国产一区二区免费在线观看 | 看片一区 | 成人三级电影网 | 偷偷操偷偷操 | 久国久产久精永久网页 | 美国一级黄色毛片 | 国产激情精品一区二区三区 | 亚洲午夜免费电影 | 国产一区在线观看视频 | 请播放一级毛片 | 久久精品2019中文字幕 | 欧美精品18videos性欧美 | 亚洲字幕av | xnxx18日本 | 色a综合 | 欧美精品久久久久久久久久 | 黄色a级片免费观看 | 久色精品视频 | 亚洲精品午夜视频 | fc2成人免费人成在线观看播放 | 色玖玖综合 | 伊人网站 | 国产在线精品一区二区三区 | 欧美日韩国产成人在线 | 国产美女视频一区二区三区 | 91麻豆精品国产91久久久点播时间 |