亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

Enterprise JavaBeans導論4

2019-11-18 12:36:42
字體:
來源:轉載
供稿:網友

  實體bean
  實體bean的角色
  實體bean用來代表底層的對象。最常用的是用實體bean代表關系庫中的數據。一個簡單的實體bean可以定義成代表數據庫表的一個記錄,也就是每一個實例代表一個非凡的記錄。更復雜的實體bean可以代表數據庫表間關聯視圖。在實體bean中還可以考慮包含廠商的增強功能,如對象--關系映射的集成。
  通常用實體類代表一個數據庫表比代表多個相關聯的表更簡單且更有效。反過來可以輕易地向實體類的定義中增加關聯,這樣可以最大地復用cache并減小舊數據的表現。
  
  實體bean和對話bean的比較
  看起來會話bean好象沒什么用處,尤其對于數據驅動的應用程序。當然事實并不是這樣。因為實體bean(譬如說)代表底層數據庫的一行,則實體bean實例和數據庫記錄間就是一對一的關系。因為多個客戶端必須訪問底層記錄,這意味著,不同于會話bean,客戶端必須共享實體bean。因為是共享的,所以實體bean不答應保存每個客戶端的信息。會話bean答應保存客戶端的狀態信息,客戶端和會話bean實例間是一對一的。實體bean答應保存記錄的信息,實體bean實例和記錄間是一對一的。一個理想的情況是客戶端通過會話bean連接服務器,然后會話bean通過實體bean訪問數據庫。這使得既可以保存客戶端的信息又可以保存數據庫記錄的信息。
  同時會話bean也不能提供在相同或不同的EJB類調用間進行全局的事務控制。沒有會話bean,應用程序開發者(客戶端開發者)就必須理解EJB類的事務要求,并使用客戶端的事務劃分來提供事務控制。EJB的主要好處就是應用開發者不需知道EJB類的事務需求。一個會話bean可以代表一個商業操作,進行事務控制,不需要客戶端進行事務劃分。
  
  Finder方法
  通過home或remote interface創建和刪除bean的實例,對實體bean和會話bean來說有不同的含義。對會話bean來說,刪除意味著從容器中刪除,不能再使用,并且其狀態信息也丟失了。對于實體bean,刪除意味著底層數據庫記錄被刪除了。因此,一般不把刪除作為實體bean生命周期的一部分。
  創建一個實體bean意味著一個記錄被插進數據庫中。與刪除操作類似,創建操作通常也不作為實體bean生命周期的一部分??蛻舳嗽L問實體bean需要先找到它。除了create()方法,一個實體bean的home interface還有finder方法。客戶端需要根據應用程序的限制來識別一個非凡的數據庫記錄。例如:
  
  public interface AccountHome extends EJBHome {
  public Account findByFirstLast(String first, String last)
  throws RemoteException,FinderException;
  public Account findByAccountNumber(String acctNum)
  throws RemoteException,FinderException;
  }
  
  當客戶端調用home object的任何方法,容器把調用傳遞到實體bean的相應方法中。
  
  Public class myEntityBean implements EntityBean {
  …
  public Obejct ejbFindByFirstLast(String first, String last) {
  //runs apPRopriate singleton SELECT statement
  //returns primary key for selected row
  }
  public Obejct ejbFindByAccountNumber(String acctNum) {
  //runs appropriate singleton SELECT statement
  //returns primary key for selected row
  }
  }
  
  一個較好的方法是把finder方法當成數據庫的SELECT語句,而動態SQL參數相當于方法的參數。注重home interface中的finder方法向客戶端返回一個對EJBObject的遠程引用。Bean中的Finder方法向容器返回一個唯一的標識符,稱為主鍵。容器用這個主鍵實例化一個代表選定的記錄的EJBObject。不論如何實現finder方法,容器都用這個主鍵代表這個選定的記錄,由實體類來決定如何用唯一的標識符來代表記錄。
  由可能一個finder方法得到滿足SELECT語句條件的多個記錄。這種情況下bean的finder方法返回一個主鍵的枚舉類型。Home interface的Finder方法定義成向客戶端返回EJBObject引用的枚舉類型。
  
  Public interface AccountHome extends EJBHome {
  …
  public Enumeration findByCompany(String companyName)
  throws RemoteException,FinderException;
  }
  public class myEntityBean implements EntityBean {
  …
  public Enumeration ejbFindByCompany(String companyName) {
  //runs appropriate SELECT statement
  //returns an Enumeration of primary keys
  }
  }
  
  主鍵
  主鍵這個詞有可能被曲解。把它理解為唯一的標識符更恰當些。當實體bean代表一個數據庫記錄時,主鍵可能是該記錄的組合鍵。對于每個實體bean的實例,有一個相應的EJBObject.當一個EJBObject與一個實體bean實例對應時,該實例的主鍵保存在EJBObject中。
  這時說該實體bean的實例有一個標識符。當客戶端調用home object的finder方法時,容器會用沒有標識符的實體bean的實例來執行這個請求。容器可能為此維持一個甚至多個匿名的實例。不論如何實現finder方法,都必須向容器返回底層數據的主鍵,如數據庫的記錄。假如多個記錄滿足條件,那么就返回多個主鍵。當容器得到主鍵后,它會用該主鍵初始化一個EJBObject.容器也可以初始化一個與每個EJBObject關聯的實體bean的實例。因為底層記錄的標識符在EJBObject中保存,因此在bean實例中沒有狀態。因此,容器可以在EJBObject上調用商業方法時再實例化bean,以節省內存資源。
  當finder方法向容器返回主鍵時,容器首先會檢查該主鍵的EJBObject是否已經存在。假如該主鍵的EJBObject已經存在,那么容器不會創建一個新的EJBObject,而是向客戶端返回這個已存在的EJBObject的引用。這樣就保證了每個記錄只有一個EJBObject的實例,所有的客戶端共享EJBObject.
  主鍵只是在該類中唯一地標識bean的實例,容器負責保證其范圍。應該明確finder方法只是從數據庫中取出數據的主鍵,而不包含其它的數據項。也可能調用finder方法后不產生任何實體bean的實例,只產生包含該主鍵的EJBObject,當客戶端調用EJBObject的方法時在產生并導入實體bean的實例。 Home object保證客戶端可以訪問以下方法:
  public myRem findByPrimaryKey(Obejct key) throws …;
  EJBObject提供以下方法的一個實現:
  Public Object getPrimaryKey();
  客戶端能在任何時候獲得實體bean的主鍵,并且以后可以使用該主鍵通過home interface重建對實體的引用。主鍵類的類型在部署描述符中指定。Bean開發者可以用任何類類型來表示主鍵。唯一的要求是類必須實現serializable,因為主鍵可能在客戶和服務器間傳遞。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲精品在线观看www| 亚洲美女动态图120秒| 精品偷拍一区二区三区在线看| 91精品国产91久久久久福利| 91国产美女视频| 中文字幕亚洲综合| 亚洲美女av在线| 欧美精品videossex88| 国产ts一区二区| 亚洲精品中文字幕有码专区| 亚洲高清av在线| 成人免费在线视频网站| 亚洲成人999| 欧美亚洲视频一区二区| 91在线观看免费高清| 中文字幕自拍vr一区二区三区| 国产精品福利网站| 日本三级韩国三级久久| 81精品国产乱码久久久久久| 国产精品视频自在线| 三级精品视频久久久久| 欧美日韩精品在线视频| 久久国产精品影片| 日韩中文娱乐网| 91精品免费久久久久久久久| 亚洲深夜福利网站| 欧美成年人视频| 亚洲欧美成人精品| 欧美电影电视剧在线观看| 国产精品日韩欧美大师| 日韩中文字幕第一页| 日韩av中文字幕在线免费观看| 亚洲欧洲激情在线| 精品亚洲国产视频| 国产视频久久久久| 成年无码av片在线| 亚洲精品ady| 中文字幕日韩欧美在线| 日韩欧美成人精品| 成人网欧美在线视频| 国产精品一区二区三区久久| 98精品在线视频| 奇米4444一区二区三区| 亚洲第一页在线| 午夜精品久久17c| 欧美理论电影在线播放| 国内精品久久久久伊人av| 川上优av一区二区线观看| 国产成人av在线播放| 狠狠色狠色综合曰曰| 欧美高清第一页| 国产精品视频一区二区三区四| 成人www视频在线观看| 九九久久久久99精品| 成人精品久久av网站| 国产成人精品999| 精品久久香蕉国产线看观看gif| 欲色天天网综合久久| 欧美大荫蒂xxx| 亚洲精品xxx| 国产成人精品视频| 国产精品电影网| 成人午夜两性视频| 97香蕉久久超级碰碰高清版| 欧美综合国产精品久久丁香| 91精品国产高清久久久久久| 国产精品日韩av| 欧美电影免费观看网站| 国产精品精品久久久久久| 77777少妇光屁股久久一区| 欧美日韩亚洲国产一区| 久久手机免费视频| 97人人爽人人喊人人模波多| 91久久精品国产91久久性色| 精品福利樱桃av导航| 亚洲直播在线一区| 日本亚洲欧洲色α| 热久久免费视频精品| 欧美大片在线看免费观看| 国内久久久精品| 欧美理论片在线观看| 日韩欧美在线第一页| 日本午夜人人精品| 日本精品视频在线播放| 精品福利免费观看| 91禁国产网站| 国产精品久久久久久久天堂| 青草成人免费视频| 日韩电影在线观看免费| **欧美日韩vr在线| 亚洲欧美综合图区| 精品久久中文字幕久久av| 亚洲毛茸茸少妇高潮呻吟| 亚洲精品综合久久中文字幕| 国产成人拍精品视频午夜网站| 在线国产精品视频| 美女av一区二区三区| 在线色欧美三级视频| 精品性高朝久久久久久久| 黑人巨大精品欧美一区免费视频| 在线日韩中文字幕| 欧美性猛交xxxx富婆| 丝袜美腿亚洲一区二区| 亚洲欧美在线一区| 中文字幕av一区二区三区谷原希美| 欧美性生交大片免网| 91欧美视频网站| 国产成人精品a视频一区www| 亚洲一二在线观看| 国内伊人久久久久久网站视频| 久久精品国产一区二区电影| 亲子乱一区二区三区电影| 69精品小视频| 欧美极品美女视频网站在线观看免费| 国产精品第一第二| 91产国在线观看动作片喷水| 日韩视频―中文字幕| 国产欧美日韩免费看aⅴ视频| 自拍偷拍免费精品| 欧美日韩国产精品专区| 精品国产成人av| 亚洲国产精品网站| 国产成人精品视频在线| 欧美成人国产va精品日本一级| 永久555www成人免费| 69av在线视频| 亚洲人成电影网站色…| 国产一区二区三区三区在线观看| 国产v综合v亚洲欧美久久| 国产丝袜一区二区三区免费视频| 成人精品视频99在线观看免费| 国产伦精品免费视频| 亚洲片av在线| 欧美午夜精品久久久久久浪潮| 亚洲图片欧洲图片av| 中文国产亚洲喷潮| 欧美国产第二页| 国产丝袜高跟一区| 91av免费观看91av精品在线| 欧美性开放视频| 成人在线播放av| 亚洲第一二三四五区| 成人高清视频观看www| 国产网站欧美日韩免费精品在线观看| 亚洲老司机av| 色播久久人人爽人人爽人人片视av| 国产精品美女免费看| 欧美亚洲一区在线| 欧美日韩色婷婷| 欧美日韩国产综合新一区| 亚洲最大成人网色| 国产a级全部精品| 国模gogo一区二区大胆私拍| 欧美日韩爱爱视频| 欧美日韩国产色视频| 91精品国产99久久久久久| 欧美国产亚洲精品久久久8v| 少妇高潮久久77777| 国产精品18久久久久久首页狼| 久久黄色av网站| 丝袜美腿亚洲一区二区| 日本一区二区在线免费播放| 成人久久精品视频| 国产精品私拍pans大尺度在线|