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

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

對 JDO 的架構作一個簡單的介紹

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

  下面我開始對JDO的架構作一個簡單的介紹。
  下圖顯示了JDO架構主要的幾部分:
  
 對 JDO 的架構作一個簡單的介紹(圖一)


  JDOHelper :javax.jdo.JDOHelper類擁有一些靜態的助手(helper)方法。這個方法可以獲得一個持久對象的生命周期還可以用來創建一個與具體實現廠商無關的PersistenceManagerFactory的實例,這里使用了工廠(factory)模式。
  PersistenceManagerFactory:javax.jdo.PersistenceManagerFactory類可以通過JDOHelper類的助手方法獲得,這是一個標準的工廠類,他可以創建PersistenceManager類。
  PersistenceManager:javax.jdo.PersistenceManager接口是應用程序經常要使用的一個主要的JDO接口。每一個PersistenceManager負責控制一組持久化對象而且他還可以創建新的持久化對象或刪除現有的持久化對象。Transaction和PersistenceManager之間存在這一對一的關系,同時PersistenceManager又是Extent和Query的工廠類,也就是說這兩個對象可以通過PersistenceManager創建。
  PersistenceCapable:用戶定義的持久化類都必須擴展實現PersistenceCapable接口。大多數JDO實現的供給商都提供一種“增強器”(enhancer)的功能,它可以向你要實現的持久化類中增加PersistenceCapable接口的實現。也就是說,其實你根本不會自己去實現這個接口。
  Transaction:每一個PersistemceManager和javax.jdo.Transaction都是一一對應的。Transactions用來處理事務,它使得持久化數據可以成批的一次性添加到數據表中,假如出現異常就將數據回滾。
  Extent:java.jdo.Extent是映射數據庫中具體表的類的一個邏輯視圖。Extent可以擁有自己的子類,它通過PersistenceManager獲得。
  Query:java.jdo.Query接口用具體的廠商JDO來實現,它負責處理JDO查詢語言(JDOQL),這些JDOQL最終被解釋為實際的數據庫SQL語言。同樣這個接口也是通過PersistenceManager獲得的。
  下面的例子顯示的JDO接口如何操作并執行一個查詢并更新持久化對象。
  
  例子:JDO接口的交互
  //通過助手類獲得PersistenceManagerFactory
  PersistenceManagerFactory factory=
    JDOHelper.getPersistenceManagerFactory(System.getPRoperties());
  //通過PersistenceManagerFactory獲得PersistenceManager對象
  PersistenceManager pm=factory.getPersistenceManager();
  //創建并開始一個事務
  Transaction tx=pm.currentTransaction();
  tx.begin();
  //查詢employee表中每周工作時間大于40小時的研究人員
  Extent ex=pm.getExtent(Employee.class,false);
  //獲得一個Query
  Query query=pm.newQuery();
  //設置這個query作用的范圍,即查詢的是那個表或記錄集
  query.setCandidates(ex);
  query.setFilter("division.name == /"Research/" "+ "&& avgHours > 40");
  Collection result=(Collection)query.execute();
  Employee emp;
  for(Iterator itr=result.iterator();itr.hasNext();){
   emp=(Employee)itr.next();
   emp.setSalary(emp.getSalary()*2);
  }
  //提交記錄釋放資源
  tx.commit();
  pm.close();
  factory.close();
  
  上面的代碼片斷包括了JDO幾個主要的接口,在此你可以對JDO各個接口的使用方法有一個粗略的印象,以后實際的應用中JDO接口也都是這樣使用的。
  
  JDO的異常
  JDO不會拋出通常的運行時異常,比如NullPointerExceptions、 IllegalArgumentException等它只拋出JDOException異常。JDOExcetion的結構如下圖所示,這是一個繼續的層次結構,從他們的字面含義就可以看出它們的用途,在這里就不具體說了,要想了解JDO異常的層次結構可以參考它們的JavaDoc。
  
對 JDO 的架構作一個簡單的介紹(圖二)


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 纳雍县| 依安县| 达日县| 湘潭县| 台州市| 安化县| 吉林省| 漯河市| 通海县| 南和县| 六枝特区| 大港区| 乐都县| 阜城县| 镇原县| 江津市| 大同县| 中方县| 中超| 公主岭市| 精河县| 大余县| 五原县| 松滋市| 沅江市| 甘泉县| 盐池县| 西畴县| 怀宁县| 东海县| 阜城县| 封开县| 景宁| 临漳县| 佛坪县| 阿拉善右旗| 松桃| 定结县| 定结县| 汤阴县| 新泰市|