事務是相關操作構成乙個完整操作單元,所有的語句都順利執行後,事務可以提交。否則, 如果其中某個語句遇到錯誤,那麼事務將被回滾,就好像沒有執行過任何命令一樣。
將多個命令組合成事務的主要原因是為了確保資料庫的完整性。例如, 假設我們需要講錢從乙個帳號轉賬到另乙個帳戶。此時,乙個非常重要的問題是我們必須同時將錢從乙個帳號取出並且存入另乙個帳號。如果在將錢存入其他帳號之前系統發生崩潰,那麼我們必須撤銷取款操作,取款存款必須是乙個完成的操作單元,在同乙個是事務裡完成。
可見,事務要麼成功的執行所有的操作並被提交,要麼在中間某個失敗的位置,執行回滾操作,資料庫講自動這小上次提交事務以來的所有更新操作,就像沒有執行過任何命令。
預設情況下,資料庫鏈結處於自動提交模式。每個sql命令一旦被執行便被提交給資料庫。如果要檢查當前自動提交模式的設定,請呼叫connection類中的getautocommit方法。
設定自己的事務單元:
1、關閉自動提交模式:conn.setautocommit(false);---------事務的開始
2、使用通用的方法建立語句物件statement
statement stmt = conn.createstatement();
3、 任意多次呼叫executeupdate方法;
4、 執行了所有命令之後,呼叫commit方法。--------------事務的結束
5、如果出現錯誤,請呼叫conn.rollback();
此時, 程式將自動這些上次提交以來的所有命令。當事務被sqlexceptiony
異常中斷時,通常的方法是發起回滾操作。
JDBC基礎和JDBC的事物
開始 註冊驅動 class.forname com.mysql.jdbc.driver mysql的註冊驅動方式 jdbc執行sql 語句的兩種方式 方式一 這種有sql注入的風險,建議不要使用 statement stat con.createstatement 查詢 stat.executequ...
JDBC程式設計
1 sql基礎 1 寫sql 找出每個城市的最新一條記錄。select city,max time from table group by city 2 乙個學生表,乙個課程成績表,怎麼找出學生課程的最高分數 學生表 child id student 姓名 成績表 grade id,grade,ch...
JDBC程式設計步驟
jdbc常用介面和類 1.drivermanager jdbc驅動類,負責載入資料庫jar包,獲得資料庫的鏈結。2.connection 資料庫連線類,通過drivermanager載入資料庫之後,返回乙個連線物件 會話,用於訪問資料庫。3.statement 執行sql的介面,子類有prepare...