国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

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

用內嵌類減少 JAVA 程序設計中的混亂

2019-11-18 10:44:05
字體:
來源:轉載
供稿:網友

  實體beans是個永久性的對象。使用java對象,大多數的情況下,都需要捕捉對象當前工作的狀態,將它保存到永久性的存儲器中。實現這一點的一個辦法是使用object serialization。另一個辦法是使用傳統相關數據庫存儲Java對象,例如sqlserver或Oracle
  
  什么是實體beans
  在成熟的多層的面向對象的配置中,可以劃分出兩種不同的組件配置:
  
  應用邏輯組件:這些組件是執行普通任務的方法提供者。
  持久的數據組件:這種對象可以將自己提交給永久性存儲器。
  Entity beanss實現接口Javax.ejb.Entitybeans,其描述了特定數據源中的數據,能長時間存在于EJB Container中,不會隨系統的意外中止而消失,并且可以讓多個客戶同時訪問。
  
  實體beans包含的文件
  實體beans類:是模擬持久數據的Java類。一個實體beans類映射到在數據庫中的實體定義。
  
  實體beans的遠程接口:客戶端調用的beans的接口。其中,包含實體beans的每一個業務方法的描述。EJB容器商提供了用來實現遠程接口的工具。它的具體實現是實體beans的EJB對象。EJB對象代表了客戶端和beans之間間接的一層。客戶端直接調用EJB對象,用以達到調用實體beans的目的。因為EJB對象是容器的一部分。它包含截取方法調用的邏輯,治理在beans實例上所需的任務。這和會話beans是相同的。
  
  實體beans的home接口:客戶端使用它來建立、查找、破壞實體beans的EJB對象。EJB容器商提供了產生home接口的工具。它的具體實現是home對象。Home對象是EJB對象的工廠。客戶端必須執行JNDL定位找到home對象。這和會話beans也是相同的。
  
  實體beans的主鍵類:這是實體beans的非凡標識。主鍵使得實體beans各不相同。主鍵也是個對象,它可以包含大量的屬性。主鍵也可以是實體對象, 實體beans的配置描述符:是容器配置使用到的屬性列表。
  
  實體beans的環境屬性:答應使用者在配置上定制實體beans。
  
  同會話beans一樣,也必須將這些文件打包成Ejb-jar文件。
  
  實體beans的特征
  生命期長
  恢復性
  實體beans的實例是數據庫的視圖
  不同的實體beans實例可以代表相同的數據
  實體beans的實例間可以共享
  
  EJB容器聚集了實體beans的實例,實體beans必須實現以下兩種調用方法:
  
  ejbActivate()
  ejbPassivate()
  
  當實體beans被鈍化時,不僅僅要釋放資源,還要保存狀態:ejbStore()。相反還有ejbLoad()。實體beans和狀態beans在這方面是相同的,都有鈍化/激活過程。所不同之處在:ejbStore調用保存在鈍化時的狀態,ejbLoad()在激活期間裝載狀態。實體beans鈍化時保存狀態和激活時裝載狀態,保持實體beans永久狀態的兩種方法,一種方法是在beans中實現一套數據庫調用。例如可以通過JDBC執行sql語句。第二種方法是使用EJB容器,通過配置描述符通知容器beans的那些區域是持久性區域。實體beans可被建立、刪除和查找,實體beans可以不通過EJB而進行修改
  
  開發和使用實體beans,實體beans必須實現Javax.ejb.Entitybeans,Entitybeans接口繼續了Javax.ejb.EnterPRisebeans:
  
  public interface Javax.ejb.Enterprisebeans implements Java.io.Serializable {
  }
  Javax.ejb.Enterprisebeans interface.
  public interface Javax.ejb.Entitybeans implements Javax.ejb.Enterprisebeans {
  public abstract void setEntityContext(Javax.ejb.EntityContext);
  public abstract void unsetEntityContext();
  public abstract void ejbRemove();
  public abstract void ejbActivate();
  public abstract void ejbPassivate();
  public abstract void ejbLoad();
  public abstract void ejbStore();
  }
  Javax.ejb.Entitybeans interface.
  
  實體beans的建立:ejbCreate();ejbCreate()可以有許多的用法:
  
  1、 不需要給實體beans寫ejbCreate()方法。這個方法對于實體beans時可選擇的。
  
  2、 參數可以是不同的。
  
  3、 必須在home接口中復制ejbCreate()方法。客戶端不直接調用beans,它們通過調用EJB對象代理。
  
  已存在實體beans的查找:ejbFind();有不同的查找方法。
  
  /**
  * Finds the unique bank account indexed by primary key key
  */
  public AccountPK ejbFindByPrimaryKey(AccountPK key)
  /**
  * Finds all the prodUCt entity beanss. Returns an Enumeration
  * of primary keys.
  */
  public Enumeration ejbFindAllProducts()
  /**
  * Finds all Bank Accounts that have at least a minimum balance.
  * Returns an Enumeration of primary keys.
  */
  public Enumeration ejbFindBigAccounts(int minimum)
  /**
  * Finds the most recently placed order
  */
  public OrderPK ejbFindMostRecentOrder()
  
  Creating a beans-managed persistent entity beans and EJB object.
  
  查找的方法都是由ejbFind開始。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 和林格尔县| 达尔| 靖边县| 内江市| 吉隆县| 浦东新区| 南部县| 宜君县| 宾阳县| 诏安县| 枣强县| 马尔康县| 郯城县| 高台县| 沅陵县| 肥西县| 精河县| 嵊泗县| 大足县| 镇原县| 湟源县| 曲阳县| 西城区| 镇赉县| 嫩江县| 烟台市| 太原市| 西宁市| 阳山县| 牙克石市| 格尔木市| 玉林市| 彩票| 淳安县| 自治县| 新巴尔虎右旗| 泸水县| 太白县| 中方县| 辽宁省| 华坪县|