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

正文內(nèi)容

ejb怎樣實(shí)現(xiàn)的實(shí)體對(duì)象-資料下載頁(yè)

2025-06-25 06:36本頁(yè)面
  

【正文】 ent=()。 return (eo)。 }} 有了EntityBrowser類后,我們來(lái)修改剛才定義的Account類。第一步是要在Account類里定義一個(gè)私有的EntityBrowser子類,這個(gè)子類只要定義一個(gè)構(gòu)造函數(shù)并重載nextElement()方法即可。這里使用了在一個(gè)類里定義另一個(gè)類的技巧,這個(gè)技巧在java的容器類庫(kù)中經(jīng)常使用。第二步是在Account類中增加一個(gè)方法getAllByXX(),返回一組實(shí)體對(duì)象的方法名常用getAll打頭。請(qǐng)看以下修改的代碼片段。import .*。public class Account extends EntityObject { 。 /*以下是新修改的代碼*/ //定義一個(gè)子類 private class AccountBrowser extends EntityBrowser { AccountBrowser (ResultSet rs) throws SQLException { super(rs)。 } Public Object nextElement() throws SQLException{ Account ac=new Account(_conn)。 return (_nextEntityObj(ac))。 }}//下面是實(shí)體對(duì)象的方法 public EntityBrowser getAll() throws SQLException { PreparedStatement ps=(select AccountId,Name from account )。 ResultSet rs=()。 return (new AccountBrowser(rs))。}public EntityBrowser getAllByName(String name) throws SQLException { PreparedStatement ps=(“select AccountId,Name from account where name like ?”。 (1,name)。 ResultSet rs=()。 return (new AccountBrowser(rs))。} 接下來(lái),討論一下數(shù)據(jù)表的連接關(guān)系,關(guān)系數(shù)據(jù)庫(kù)主要有一對(duì)一,一對(duì)多,多對(duì)多,多對(duì)一的關(guān)系。比如教師和學(xué)生之間的教課關(guān)系,這是一種多對(duì)多的關(guān)系。有的關(guān)系是有自己的屬性,比如教課時(shí)間,我們可以把所有的關(guān)系都看作一個(gè)實(shí)體對(duì)象。但是為了簡(jiǎn)化程序,對(duì)于那些沒(méi)有自己屬性的一對(duì)一,一對(duì)多關(guān)系我們可以把它簡(jiǎn)化成父、子表的關(guān)系。表示數(shù)據(jù)庫(kù)中的主表和子表有兩種方法。一種方法把子表和主表看作一個(gè)實(shí)體對(duì)象,子表用Vector或HashTable這樣的Collection定義成主表的一個(gè)屬性,在_setAttribute方法中,再執(zhí)行一次sql查詢,把查詢出的子表數(shù)據(jù)放入collection中。同時(shí)還要修改insert,update方法,使得主表的實(shí)體對(duì)象每次數(shù)據(jù)插入或修改時(shí)都要?jiǎng)h除并重新插入子表的數(shù)據(jù)。這里實(shí)際上把子表看作主表的一種附屬數(shù)據(jù)結(jié)構(gòu),而不是獨(dú)立的對(duì)象,子表的數(shù)據(jù)庫(kù)操作全部由主表來(lái)完成。另一種方法是把子表看作一個(gè)單獨(dú)的實(shí)體類,實(shí)際上這時(shí)不存在主表和子表的概念了。只有兩個(gè)實(shí)體對(duì)象,他們之間是一種關(guān)聯(lián)的關(guān)系。主表通過(guò)getXXByXX()的方法來(lái)返回一個(gè)子表類的Browser??梢酝ㄟ^(guò)定義主表的一個(gè)方法insertXX(), 調(diào)用子表的insert()來(lái)插入一個(gè)新的子表項(xiàng)目。定義deleteXXX()來(lái)刪除子表項(xiàng)目。至于更新子表數(shù)據(jù),可以直接調(diào)用子表實(shí)體類的update()方法,不需要使用主表類的任何方法。對(duì)于一個(gè)視圖,也可以參照定義實(shí)體類的方法定義一個(gè)視圖類,不過(guò)要盡量少用視圖類,因?yàn)橐晥D類和其他實(shí)體對(duì)象雖然語(yǔ)法上看不出關(guān)聯(lián),但語(yǔ)義上實(shí)際上是有關(guān)聯(lián)的。一個(gè)實(shí)體類的修改常常要修改所有相關(guān)的視圖類,這對(duì)于數(shù)據(jù)封裝是很不利的。只有出于性能的考慮我們才使用它。最后,探討一下數(shù)據(jù)庫(kù)事務(wù)的概念。事務(wù)是建立在數(shù)據(jù)庫(kù)連接的基礎(chǔ)上的,可以一次提交或回滾一系列操作。要實(shí)現(xiàn)事務(wù),必須把數(shù)據(jù)庫(kù)連接的自動(dòng)提交屬性設(shè)為false。java缺省的連接都是自動(dòng)提交的,(false)。如果連接不是自動(dòng)提交的,那么要注意,每當(dāng)一個(gè)事務(wù)完成時(shí)必須執(zhí)行mit或rollback,就算是select語(yǔ)句也必須提交事務(wù)。而且事務(wù)最好能盡早提交,比如每次select后提交,這樣可以減少數(shù)據(jù)庫(kù)資源的占用。9 / 9
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1