標籤:col nsis getc rman close 完整性 com mic 一個
事務
資料庫事務是指由一個或者多個SQL語句組成的工作單元,這個工作單元中的SQL語句是相互依賴的,簡單點說,即一個SQL語句如果出現了一個錯誤,那麼這一整個工作單元都將會被撤銷掉。
事務的四大特性:
Atomic(原子性):事務中包含的操作被看作一個邏輯單元,這個邏輯單元中的操作要麼全部成功,要麼全部失敗。
Consistency(一致性):只有合法的資料可以被寫入資料庫,否則事務應該將其復原到最初狀態。
Isolation(隔離性):事務允許多個使用者對同一個資料的並發訪問,而不破壞資料的正確性和完整性。
Durability(持久性):事務結束後,交易處理的結果必須能夠得到固化。
事務邊界
事務的開始邊界(BEGIN)。
事務的正常結束邊界(COMMIT):提交事務。
事務的異常結束邊界(ROLLBACK):復原撤銷事務。
在使用JDBC操作資料庫之前,JDBC首先會從擷取一個Connection資料庫連接對象,預設情況下Connection對象是會自動對事務進行提交的。
擷取Connection資料庫連接對象以及關閉事務自動認可
1 public class BaseDao(){ 2 //靜態載入資料庫驅動包(這裡是Oracle資料庫) 3 static{ 4 try { 5 Class.forName("oracle.jdbc.driver.OracleDriver"); 6 } catch (ClassNotFoundException e) { 7 e.printStackTrace(); 8 } 9 }10 11 //擷取資料庫連結化物件12 public static Connection getConnection(){13 String url="jdbc:oracle:thin:@localhost:1521:orcl";14 try {15 return DriverManager.getConnection(url,"scott","tiger");16 } catch (SQLException e) {17 e.printStackTrace();18 }19 return null;20 }21 22 }JDBC擷取資料庫連接對象
1 //使用Jdbc執行持久化(Dept) 2 public static void main(String[] args) { 3 Connection conn=getConnection(); 4 Statement st=null; 5 try { 6 conn.setAutoCommit(false);//設定不自動認可 7 st=conn.createStatement(); 8 String sql="insert into dept values(40,‘後勤‘,‘XXX‘)"; 9 st.executeUpdate(sql);10 conn.commit();//提交事務11 //conn.rollback();//復原事務12 conn.close();13 } catch (SQLException e) {14 e.printStackTrace();15 }16 }持久化操作及關閉事務自動認可
根據上面的兩段代碼,應該不難知曉。關閉自動認可只需要 conn.setAutoCommit(false) 即可,其次如果事務正常,則事務提交 conn.commit() 如果失敗,則需要conn.rollback()
以上便是JDBC的交易處理。
JDBC:交易處理