1、事務是一組要么同時執行成功,要么同時執行失敗的sql語句。是數據庫操作的一個執行單元。
2、事物的四大特點:
(1)atomicity(原子性)表示一個事務內的所有操作是一個整體,要么全部成功,要么全部失敗。
(2)consistency(一致性)表示一個事物內有一個操作失敗時,所有更改過的數據都必須回滾到修改前的狀態。
(3)isolation(隔離性)事務查看數據時數據所處的狀態,要么是另一并發事務修改它之前的狀態,要么是另一事務修改它之后的狀態,事務不會查看中間狀態的數據。
(4)durability(持久性)持久性事務完成之后,他對于系統的影響是永久性的。
3、實例(以sql語句中的insert語句為例)
packagecom.test.jdbc;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;/***事務的基本用法**/publicclassTest{publicstaticvoidmain(String[]args){Connectionconn=null;PreparedStatementps1=null;PreparedStatementps2=null;try{//加載驅動類Class.forName("com.MySQL.jdbc.Driver");conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/testjdbc","root","123456");conn.setAutoCommit(false);//JDBC中默認是true,自動提交事務ps1=conn.prepareStatement("insertintot_user(username,pwd)values(?,?)");//?是占位符ps1.setObject(1,"張三");ps1.setObject(2,"666666");ps1.execute();System.out.println("插入一個用戶張三");try{Thread.sleep(3000);}catch(InterruptedExceptione){e.printStackTrace();}ps2=conn.prepareStatement("insertintot_user(username,pwd)values(?,?)");ps2.setObject(1,"李四");ps2.setObject(2,"123456");ps2.execute();System.out.println("插入一個用戶李四");conn.commit();//提交事務}catch(ClassNotFoundExceptione){e.printStackTrace();try{conn.rollback();//某一條數據添加失敗時,回滾}catch(SQLExceptione1){e1.printStackTrace();}}catch(SQLExceptione){e.printStackTrace();}finally{try{if(ps1!=null){ps1.close();}}catch(SQLExceptione){e.printStackTrace();}try{if(conn!=null){conn.close();}}catch(SQLExceptione){e.printStackTrace();}}}}
這段代碼是正確的結果。運行結果:
插入一個用戶張三
(等待三秒后)
插入一個用戶李四
查看數據庫,插入了兩條數據。
接下來把數據庫中剛剛插入的兩條數據刪掉,然后把第二條sql語句改一下,讓他出錯,在第二條sql語句中去掉一個占位符:
ps2=conn.prepareStatement("insertintot_user(username,pwd)values(?)");
運行結果:
插入一個用戶張三
(等待三秒后)
拋出錯誤了。。。。。。。。
以上就是使用Java怎么處理mysql事務,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注本站行業資訊頻道。
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
c語言中正確的字符常量是用一對單引號將一個字符括起表示合法的字符常量。例如‘a’。數值包括整型、浮點型。整型可用十進制,八進制,十六進制。八進制前面要加0,后面...
2022年天津專場考試原定于3月19日舉行,受疫情影響確定延期,但目前延期后的考試時間推遲。 符合報名條件的考生,須在規定時間登錄招考資訊網(www.zha...
:喜歡聽,樂意看。指很受歡迎?!巴卣官Y料”喜聞樂見:[ xǐ wén lè jiàn ]詳細解釋1. 【解釋】:喜歡聽,樂意看。指很受歡迎。2. 【示例】:這是...
國美易卡是國美金融旗下的現金貸、分期、信用卡代還產品,之前名叫美易分,有很多人想在國美易卡提現,但是不知道到賬的時間,那么國美易卡提現成功多久到賬?國美易卡審核要多久?國美易卡申請條件,下面一起來看看吧。國美易卡在填寫完個人資料、完成認證后會給予一定的額度,分為提現額度、購物分期、信用卡代還,其中提現額度是可以提到銀行卡內的,如果發現提現額度為零,那么使用其他額度一段時間后就可以提現了。另外如果是...
股市5000點是哪年?股市5000點的意思是上證指數到5000點,上證指數有3次站上5000點,之一次是2007、第二次是2008年,第三次是2015年。第一次:2007年8月23日,上證指數首次站上5000點,而后一路上行,2007年10月16日達到上證指數目前頂峰6124.04點,2007年11月22日站上5000點后,首次跌破5000點。第二次:2008年1月14日,上證指數更高至5522....
渣打銀行是股份制銀行,現階段中國總公司上海市區,主打產品業務流程包含按揭貸款貸款、理財投資、透支卡、資產代管等服務項目。許多客戶想掌握渣打現貸派容易下款嗎?今日大家來簡易介紹一下這款無抵押無擔保貸款無抵押的個人信用貸款。因為渣打銀行營業網點普及率不高,因此許多群眾針對渣打銀行不了解,因此現階段看來,現貸派申請的人較為少,集中化于下列好多個難題:1、成功率不高。很多人都說渣打銀行現貸派基礎是秒拒,門...