freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

ejb怎樣實現(xiàn)的實體對象-文庫吧

2025-06-10 06:36 本頁面


【正文】 過標準的DriverManager得到數(shù)據(jù)庫連接,這是完全一樣的 (false)。 //如果不使用事務,這一行可以省去Account a1=new Account(conn)。(1)。 //查找到相應記錄()。(1)。 //如果企圖修改一個對象,必須通過forUpdate系列的方法得到這個對象 =new name。 ()。 //修改原有記錄Account a2=new Account(conn)。=3。 =姚大。 ()。 //插入一條新記錄 ()。 實體對象的屬性通過方法修改是比較理想的方式,如用getName(),setName()兩個方法訪問Name屬性。這還可以解決屬性之間相互關(guān)聯(lián)的問題。例如,表中有一個地區(qū)代碼和地區(qū)名稱兩個域,必須保持一致,這就可以考慮在屬性設(shè)置方法中實現(xiàn)。在這里我們?yōu)榱撕唵?,直接通過屬性修改,在一般情況下,我覺得也是可以接受到。有一點必須注意的就是多線程程序所帶來的數(shù)據(jù)完整性問題。對于我們常使用的從數(shù)據(jù)庫讀取數(shù)據(jù)到對象中修改對象屬性更新到數(shù)據(jù)庫這個流程,非常容易出現(xiàn)數(shù)據(jù)完整性破壞問題。比如一個進程中甲對象讀取數(shù)據(jù)后,另一個進程中乙對象又修改了同一數(shù)據(jù),這時甲對象再次更新數(shù)據(jù)庫會帶來污寫。解決的辦法是對象增加一個方法給數(shù)據(jù)庫的這條記錄加鎖。,這個函數(shù)中相應的sql語句(ORACLE數(shù)據(jù)庫)改為select AccountId,name from account where accountId=? for update,這樣數(shù)據(jù)取出后就自動加鎖,這個鎖將會在事務提交或回滾時釋放。for update在SQLServer相應的語法為holdlock。說到數(shù)據(jù)庫加鎖的問題就不能不考慮到數(shù)據(jù)庫死鎖的可能。想完全避免死鎖是很困難的,只有盡量降低這種可能性。方法是:盡量少使用forUpdate這種函數(shù),只有在更改數(shù)據(jù)庫數(shù)據(jù)時才使用。查詢的時候不要用,如果查詢后根據(jù)某個條件有可能修改,那么在查詢時不加鎖,在修改前重新調(diào)用forUpdate函數(shù)加鎖。盡量以某個特定的順序加鎖。例如有表A和表B,兩個程序都要同時更新這兩個表,最好都是先訪問表A,再訪問表B。Oracle有個很好的功能就是自動檢測死鎖。如果發(fā)生死鎖,會回滾一個事務,并返回一個SQL錯誤,我們的程序要檢測這個異常,處理程序中可能的錯誤。上面說到的對象中,只有g(shù)etByXXX()這樣的方法,這種方法只會返回唯一的對象,如果想要返回一組對象,這時需要一個輔助類來實現(xiàn)。這個輔助類稱為對象瀏覽器EntityBrowser。再實體對象中返回一個對象瀏覽器的方法一般命名為getAllByXXX()使用對象瀏覽器EntityBrowser要列出所有account表中的id和name的代碼如下,其實這個對象瀏覽器和Java定義的Enumeration接口的最大區(qū)別就是它有一個close方法。請看下面的代碼片斷,它輸出所有的Accout對象。 Connection conn=()。 Account a1=new Account(conn)。 EntityBrowser browser=()。 (==Account List==)。 While (()) { Account a=(Account)()。 ()。 ()。 ()。 } ()。 以上就是我們要實現(xiàn)的實體對象,下面介紹如何編寫一個實體對象。四、實現(xiàn)的代碼解釋 首先,下面的代碼定義一個所有實體對象的基礎(chǔ)類EntityObject,這是一個抽象類,不能直接使用,但為其它實體對象定出了一個結(jié)構(gòu)。 Import .*。/**所有實體對象基礎(chǔ)類*/abstract public class EntityObject { protected _conn。 private boolean _dbStored。 /**實體對象需要用一個數(shù)據(jù)庫連接初始化,這樣可以利用這個連接做事務提交或回滾*/ public EntityObject(Connection conn) {_conn=conn。_dbStored=false。} /**這個方法用來插入新記錄,子類必須重定義這個方法*/ public void insert() throws SQLException{ _dbStored=true。} /**這個方法用來修改數(shù)據(jù)庫原有記錄,子類必須重定義這個方法*/
點擊復制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1