JBuilder9+Weblogic7實戰篇Entity Bean運用(三) (轉)
JBuilder9+LOGIC7實戰篇:namespace prefix = o ns = "urn:schemas--com::office" />
ENTITY BEAN的運用(三)
作者:黃 凱
E_:
六、建立Entity Bean的關係
6.1 Entity Bean的關係描述
因為資料之間存在一定的關係,所以代表永續性資料的Entity Bean也應該有相應的關係。例如《Entity Bean運用(一)》中2.1節中建立的兩個資料表student和locker,這兩個代表學生和課桌的資料表是有關係的,二者透過lockerid相關聯。那麼作為代表這兩個表的Entity Bean,student和locker也應該體現這種關係。Entity Bean的關係是透過在有關係的Entity Bean中建立關係欄位完成的。
2.0支援單向、雙向關係,並且Entity Bean之間可以存在一對一(1:1),一對多(1:N)或多對多(N:N)的關係。
6.2 Entity Bean關係開發例項
6.2.1開啟《Entity Bean的運用(一)》中建立的comSample工程。參考2.2.9建立一個與locker資料表對應的Entity Bean。
6.2.2 在文件視窗的EJB Designer中單擊Locker項,將Interface設定為local/remote,其他項採用預設值。
6.2.3 在文件視窗的EJB Designer中右鍵單擊Locker項,選擇Add/Relationship選單項,將方向箭頭指向要建立關係的Entity Bean Student。
6.2.4 將方向箭頭指向Student後,可以看到在Locker中增加了一個欄位student,該欄位是代表與Locker相應的Student,稱為關係欄位。單擊關係欄位,可以設定此關係的屬性。各項含義如下:
★ Relationshname: 關係的名字。
★ Multiplicity: 選擇是一對一、一對多還是多對多的關係。
★ Navigability: 方向性。選擇是單向還是雙向的關係。如果選擇unidirectional,表示選擇單向關係,那麼只在Locker中建立代表Student的關係欄位。如果選擇bidirectional,表示建立雙向的關係,那麼還將在Student中建立代表Locker的關係欄位。
★ Cascade delete: 設定是否級聯刪除。級聯刪除指的是刪除一個Entity Bean時,是否相應刪除有關係的Entity Bean。此項設定為true還是false取決於具體應用的實際情況。例如在代表班級的Entity Bean與代表班級同學的Student之間建立了關係,由於班級不存在了,其成員student就也沒有存在的必要了,所以此項應設定為true。對於本例而言,此處設定為false。
★ -cascade-delete: 與Cascade delete的含義類似,只不過這裡設定的是Entity Bean所代表的資料記錄的級聯刪除。
本例中設定Multiplicity為one to one(1:1),Navigability為unidirectional。其他項採用預設值。
6.2.5 單擊“Relationship properties”介面中的Edit Relation按鈕,設定student和locker資料表的關聯欄位,即指定這兩個表之間透過哪個欄位對應起來。如果這兩個表有名字相同的欄位,例如student表中有一個名位lockerid的欄位,locker表中如果也有名為lockerid的欄位,那麼Jbuilder會自認為這兩個表是透過lockid欄位關聯的。但是本例的locker表中使用的欄位不是lockerid,而是id,所以此處必須手工指定資料表的關聯欄位。
6.2.6 在“Weblogic RDBMS Relation Editor”介面中在id欄位和lockerid欄位之間用滑鼠拉一條直線,表示這兩個表透過欄位id和lockerid關聯起來。
6.2.7 在工程視窗單擊檢視Locker表的Bean類,可以看到其中增加了針對關係欄位的存取操作的程式碼:
public abstract void setStudent(cmpsample.Student student);
public abstract cmpsample.Student getStudent();
相應的ejb-jar.xml和weblogic-cmp-rdbms-jar.xml中對關係的描述資訊也新增了。
6.2.8 在文件視窗的EJB Designer中右鍵單擊Locker項,選擇Add/Method選單項增加一個方法,該方法返回與Locker關聯的student資訊。
修改該方法的設定如下:
★ Method name: getStuInfo
★ Return type: String
★ Interface: remote
6.2.9 在文件視窗的EJB Designer中右鍵單擊Locker項,選擇Add/View Bean 選單項,修改getStuInfo()方法如下:
public String getStuInfo()
{
String t = null;
try
{
Student stuRemote = getStudent();
t = "student id = " + stuRemote.getStuid() + ";student name = " +
stuRemote.getStuname();
}
catch (Exception e)
{}
return t;
}
6.2.10 重新編譯、生成jar檔案,然後使用Redeploy命令將新生成的Cmp.jar檔案部署到Weblogic Server上。
6.2.11 建立Locker的客戶端LockerTestClient1.。
6.2.12 修改main()方法如下所示:
public static void main(String[] args)
{
LockerTestClient1 client = new LockerTestClient1();
client.findByPrimaryKey(new BigDecimal(2));
client.getStuInfo();
}
該方法首先查詢一個stuid為2的Student,然後getStuInfo()方法以獲得該Student對應的Locker的資訊。
6.2.13 執行該程式,驗證結果。
參考
電子工業出版社 《應用開發(Jbuilder+Weblogic)》
我的文章首發牛耳論壇()和程式設計師論壇(/" target=_blank>),歡迎轉載,不過,請保留作者以及修訂者的名字,謝謝。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-963592/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- JBuilder9+Weblogic7實戰篇Entity Bean運用(二) (轉)UIWebBean
- JBuilder9+Weblogic7實戰篇Entity Bean運用(四) (轉)UIWebBean
- JBuilder9+Weblogic7實戰篇之Entity Bean運用篇(一) (轉)UIWebBean
- JBuilder9+Weblogic7實戰篇之Filter運用篇 (轉)UIWebFilter
- JBuilder9+Weblogic7實戰篇之工具篇(JDK) (轉)UIWebJDK
- JBuilder9+Weblogic7實戰篇之工具篇(Weblogic) (轉)UIWeb
- JBuilder9+Weblogic7實戰篇之工具篇(JDBC 2) (轉)UIWebJDBC
- JBuilder9+Weblogic7實戰篇之工具篇(JDBC 1) (轉)UIWebJDBC
- JBuilder9+Weblogic7實戰篇之JSP使用JDBC篇 (轉)UIWebJSJDBC
- JBuilder9+Weblogic7實戰篇之工具篇(ORACLE9i安裝) (轉)UIWebOracle
- JBuilder9.0+Weblogic7.0實戰篇之Session Bean篇 (轉)UIWebSessionBean
- DirectShow之介面實戰篇(三) (轉)
- entity bean 問題Bean
- JBuilder9+Weblogic7實戰篇之工具篇(Weblogic7在JBuilder9中的配置) (轉)UIWeb
- more effective entity bean(新的改進entity bean的效能的七條(EJB2.0版)) (轉)Bean
- session bean 對 entity bean的訪問策略?SessionBean
- Ant實戰篇 (一)(3) (轉)
- Ant實戰篇 (一)(4) (轉)
- 實戰JBuilder7+WebLogic7(續Session bean) (轉)UIWebSessionBean
- 手摸手,帶你用vue擼後臺 系列三(實戰篇)Vue
- (entity bean)動態賦值值物件-- Dynamic Create Value Object 模式 (轉)Bean賦值物件Object模式
- App專案實戰之路(三):原型篇APP原型
- DirectShow之介面實戰篇(一) (轉)
- DirectShow之介面實戰篇(二) (轉)
- 運作專案前, 請運用戰略地圖(轉)地圖
- 用Kotlin擼一個圖片壓縮外掛-實戰篇(三)Kotlin
- ItemDecoration深入解析與實戰(二)—— 實際運用
- 資料運營實戰(三):用資料說話,從埋點開始
- entity bean如何進行資料的大量更新Bean
- CSS實用教程(三)(轉)CSS
- 「實戰篇」開源專案docker化運維部署(終結篇)(11)Docker運維
- LINUX中運用VSFTPD的高手篇(轉)LinuxFTP
- Spring實戰:裝配bean-自動化裝配beanSpringBean
- 4,javase程式碼實戰-運算子——左移右移實現乘除(三)Java
- Entity Framework學習初級篇4--Entity SQLFrameworkSQL
- 使用entity bean時候的一個問題?helpBean
- entity bean開發中,怎麼去取sequence值呢Bean
- channel 實戰應用,這篇就夠了!