/*
* 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資料庫的使用,也不會影響資料庫語句的使用。這就好像即使字典沒有目錄的...