考慮資料庫事務情況下的轉賬操作

2021-10-10 15:43:37 字數 1526 閱讀 1743

/*

* 1.什麼叫資料庫事務?

* 事務:一組邏輯操作單元,使資料從一種狀態變換到另一種狀態。

* > 一組邏輯操作單元:乙個或多個dml操作。

* * 2.事務處理的原則:保證所有事務都作為乙個工作單元來執行,即使出現了故障,都不能改變這種執行方式。

* 當在乙個事務中執行多個操作時,要麼所有的事務都被提交(commit),那麼這些修改就永久地儲存

* 下來;要麼資料庫管理系統將放棄所作的所有修改,整個事務回滾(rollback)到最初狀態。

* * 3.資料一旦提交,就不可回滾

* * 4.哪些操作會導致資料的自動提交?

* >ddl操作一旦執行,都會自動提交。

* >set autocommit = false 對ddl操作失效

* >dml預設情況下,一旦執行,就會自動提交。

* >我們可以通過set autocommit = false的方式取消dml操作的自動提交。

* >預設在關閉連線時,會自動的提交資料

*/

//******************未考慮資料庫事務情況下的轉賬操作**************************

/* * 針對於資料表user_table來說:

* aa使用者給bb使用者轉賬100

* * update user_table set balance = balance - 100 where user = 'aa';

* update user_table set balance = balance + 100 where user = 'bb';

*/@test

public void testupdate()

// 通用的增刪改操作---version 1.0

public int update(string sql, object... args)

// 4.執行

return ps.executeupdate();

} catch (exception e) finally

return 0;

}

//********************考慮資料庫事務後的轉賬操作*********************

@test

public void testupdatewithtx() catch (exception e) catch (sqlexception e1)

}finally

}// 通用的增刪改操作---version 2.0 (考慮上事務)

public int update(connection conn,string sql, object... args)

// 3.執行

return ps.executeupdate();

} catch (exception e) finally

return 0;

}

資料庫哪些情況下適合建索引,哪些情況下不適合建索引

一 哪些情況下適合建索引 1.頻繁作為where條件語句查詢的字段 2.關聯字段需要建立索引,例如外來鍵字段,student表中的classid,classes表中的schoolid 等 3.排序字段可以建立索引 4.分組字段可以建立索引,因為分組的前提是排序 5.統計字段可以建立索引,例如coun...

什麼情況下資料庫索引會失效

1 在where子句中進行null值判斷的話會導致引擎放棄索引而產生全表掃瞄 2 避免在where子句中使用 這樣的符號,否則會導致引擎放棄索引而產生全表掃瞄 3 避免在where子句中使用or來連線條件,因為如果倆個欄位中有乙個沒有索引的話,引擎會放棄索引而產生全表掃瞄 4 避免在where子句中...

oracle資料庫什麼情況下建立索引比較好

索引就好象一本字典的目錄。憑藉字典的目錄,我們可以非常迅速的找到我們所需要的條目。資料庫也是如此。憑藉oracle資料庫的索引,相關語句可以迅速的定位記錄的位置,而不必去定位整個表。雖然說,在表中是否建立索引,不會影響到oracle資料庫的使用,也不會影響資料庫語句的使用。這就好像即使字典沒有目錄的...