在一個(gè)健壯的企業(yè)級(jí)應(yīng)用程序中,對(duì)事務(wù)的處理極其重要。如果您正準(zhǔn)備開發(fā)企業(yè)級(jí)應(yīng)用程序的話,您最好多了解
一些關(guān)于這方面的內(nèi)容;當(dāng)然也希望我的文章對(duì)您有所幫助,那么實(shí)際解決方案中有哪些地方需要用到事務(wù)呢?
為了數(shù)據(jù)庫中每個(gè)企業(yè)實(shí)體數(shù)據(jù)的完整型,我們通常會(huì)在設(shè)計(jì)數(shù)據(jù)庫時(shí)定義一系列主外鍵及一些規(guī)則等;其中主外鍵
的設(shè)定最重要,理論上說靠這些約束是可以保證單個(gè)數(shù)據(jù)實(shí)體的完整型了,似乎事務(wù)用不用已無關(guān)緊要了,可事實(shí)上這樣
程序是缺乏健壯性的,為此我們必須視數(shù)據(jù)庫中定義的種種約束為一種保險(xiǎn),而為了整個(gè)解決方案的可靠性、優(yōu)越性我們
必須再使用事務(wù)。
如果您的程序會(huì)遇到以下情況時(shí),你最好應(yīng)考慮事務(wù):
一. (典型)在寫入一條有定單型數(shù)據(jù)時(shí)(主從關(guān)系)您最好在業(yè)務(wù)邏輯層或數(shù)據(jù)訪問層使用事務(wù)
方法1:使用OleDbTransaction
方法2:使用COM+事務(wù)(怕麻煩用方法1)
二. 在寫入一條有外鍵約束的數(shù)據(jù)時(shí),您最好這樣處理
1. BeginTran();//加鎖
2. 判斷外鍵關(guān)聯(lián)數(shù)據(jù)是否存在
3. 根據(jù)第二步進(jìn)行決定是否寫入數(shù)據(jù)
4. Commit() ; 或 RollBack();
......
在這里我不想多舉例,再就上述第2種情況說一點(diǎn)自己的看法:
有些人認(rèn)為這種做法似乎多余,對(duì),看上去是;但這樣做后你的程序很健壯、可讀性好并且可以大大
降低數(shù)據(jù)庫端瓶頸;(未完待續(xù))
|
溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!