程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> JavaBeans:創建一個新的Cabin實體

JavaBeans:創建一個新的Cabin實體

編輯:關於JAVA

最終,你在這個例子裡見到了Cabin實體的創建過程。我們使用Java的new()操作符為Cabin bean class的一個實例分配內存。這裡沒有什麼玄妙之處:客戶端在本地為Cabin bean實例初始化成員屬性。Cabin實體的id、name、deckLevel、shipId和bedCount設置如下:

  Cabin cabin_1 = new Cabin( );
   Cabin_1.setId(1);
   cabin_1.setName("Master Suite");
   cabin_1.setDeckLevel(1);
   cabin_1.setShipId(1);
   cabin_1.setBedCount(3);

當在客戶端為Cabin實體分配內存時,它並沒有被存入數據庫。你必須將實例傳給TravelAgent EJB,當EntityManager.persist()方法被調用時,實體就被存入數據庫了。

圖4-3展示了我們創建的關系數據庫表在上述代碼執行完畢後的情況。表中應該包含一行記錄。

圖4-3:帶有一行船艙記錄的CABIN表

客戶端通過將主鍵傳給TravelAgentRemote的findCabin()方法來定位Cabin entity bean。正如你先前所見的,為了從數據庫中查找bean,該session bean與EntityManager服務進行交互。TravelAgent傳回一個帶主鍵的Cabin實例。這是有可能的,因為我們定義了Cabin bean class來實現java.io.Serializable接口,這允許我們對Cabin bean實例進行列集(marshaled),並通過網絡將其傳回客戶端。現在,我們可以在本地查詢Cabin bean實例,獲取Cabin實體的name、deckLevel、shipId及bedCount。

  Cabin cabin_2 = dao.findCabin(1);
   System.out.println(cabin_2.getName( ));
   System.out.println(cabin_2.getDeckLevel( ));
   System.out.println(cabin_2.getShipId( ));
   System.out.println(cabin_2.getBedCount( ));

我們已經為建立和運行客戶端應用程序做好了准備。編譯客戶端應用代碼,並將Cabin實體部署到容器系統中,然後運行客戶端應用。輸出應當如下所示。

Master Suite

1

1

3

恭喜你!你已經建立並運行了第一個stateless session bean和entity bean。當然,客戶端應用程序並未做很多事情,但這是學習如何實現EJB和實體的一個良好開始。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved