隨著系統(tǒng)的增大,數(shù)據(jù)量的增多,很多時候要實現(xiàn)一個功能都會對數(shù)據(jù)庫中的很多表做操作,這樣的話就會面對一個問題——數(shù)據(jù)的統(tǒng)一和一致性操作,當我們要同時對多個表做有數(shù)據(jù)變動的操作時(即通常所說的增、刪、改操作),一旦出現(xiàn)意外情況或者是由于系統(tǒng)自
隨著系統(tǒng)的增大,數(shù)據(jù)量的增多,很多時候要實現(xiàn)一個功能都會對數(shù)據(jù)庫中的很多表做操作,這樣的話就會面對一個問題——數(shù)據(jù)的統(tǒng)一和一致性操作,當我們要同時對多個表做有數(shù)據(jù)變動的操作時(即通常所說的增、刪、改操作),一旦出現(xiàn)意外情況或者是由于系統(tǒng)自身的問題或者是外界條件的變化導致某些操作沒有完成的話,就會出現(xiàn)數(shù)據(jù)不完整的情況,這樣的錯誤在系統(tǒng)中是絕對不允許出現(xiàn)的,那么該怎樣才能很好地解決這個問題呢?接下來我將為大家介紹兩種很常見的解決方案事務和存儲過程。
事務
如果涉及到的多個對表的操作是寫在系統(tǒng)中的,那么可以在開發(fā)的系統(tǒng)代碼中引入事務transaction,具體的操作自己也在之前的博客機房收費系統(tǒng)中“事務”的應用中詳細介紹了,這里就不再贅述了,但是還是有諸多瑕疵的。在三層的機房收費系統(tǒng)中自己是在DAL層加入了事務的引用,這樣會導致很多代碼的重復書寫,是一種很不好的習慣,所以,我們可以把這些方法都封裝起來,在BLL層調(diào)用的時候加入的事務的引用。
存儲過程
還有一種辦法就是在數(shù)據(jù)庫中通過存儲過程將你想要實現(xiàn)的操作都寫下來,那么存儲過程就會保證在你調(diào)用這個存儲過程的時候全部執(zhí)行存儲過程中的sql語句,便實現(xiàn)了數(shù)據(jù)的統(tǒng)一操作,這樣便省去了自己諸多的顧慮,簡單、方便,讓辛辛苦苦的碼農(nóng)們看到了希望!從中我們不難看出存儲過程其實就是多條語句的集合體,但是正因為這一機制保證了各個語句的同時執(zhí)行!
以下便是自己系統(tǒng)中用到的存儲過程的實例,此存儲過程中只是涉及到了對兩個表的刪除,拿來和大家分享!
在DAL層中對存儲過程的調(diào)用,注意在引用時須保持和聲明部分的一致:<喎?http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+PC9wPgo8cHJlIGNsYXNzPQ=="brush:sql;"> ///
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com