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

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

Java數(shù)據(jù)對(duì)象(JDO)介紹(二)

2019-11-18 16:20:28
字體:
供稿:網(wǎng)友

  javax.jdo.PersistenceManagerFactory

PersistenceManagerFactory接口 被用來獲得一個(gè)PersistenceManager 實(shí)例。這個(gè)接口中定義兩個(gè)工廠方法(有關(guān)工廠方法的內(nèi)容可以參考Java設(shè)計(jì)模式)。

    public PersistenceManager getPersistenceManager()    public PersistenceManager getPersistenceManager(String userid,            String passWord)

Because PersistenceManagerFactory is an interface, some vendor specific class, which implements this interface, must be used as a bootstrap mechanism. This should turn out to be the only vendor specific code that a JDO application uses. Because of this, the JDO specification suggests that an application level factory class be implemented which returns the apPRopriate instance of the PersistenceManagerFactory so that implementations may be swapped out with minimal impact on application code. Only the application's factory would need to be modified in this case.
因?yàn)镻ersistenceManagerFactory 是一個(gè)接口,一些實(shí)現(xiàn)該接口的廠商特定的類必須通過一種“自舉”機(jī)制來使用。

    // SolarMetric's 實(shí)現(xiàn)PersistenceManagerFactory 接口的例子...    PersistenceManagerFactory managerFactory =            new com.solarmetric.kodo.impl.jdbc.JDBCPersistenceManagerFactory();        // 獲得一個(gè)控制器 manager...    PersistenceManager manager = managerFactory.getPersistenceManager();

javax.jdo.PersistenceManager

The PersistenceManager interface is the primary point of contact between a Java application and the JDO implementation. Application code uses a PersistenceManager to retrieve Java objects from the data store and to add Java objects to the data store. The PersistenceManager interface also serves as a factory for several other JDO components discussed below.
PersistenceManager 接口是連接Java應(yīng)用程序和JDO實(shí)現(xiàn)的要點(diǎn)。應(yīng)用程序使用PersistenceManager 從數(shù)據(jù)存儲(chǔ)中獲得對(duì)象或者把一個(gè)Java對(duì)象放到數(shù)據(jù)存儲(chǔ)中。PersistenceManager 接口也為下面將要討論的幾個(gè)JDO組件提供服務(wù)。

PersistenceManager 接口中定義了幾個(gè)方法來把JDO實(shí)例對(duì)象添加到數(shù)據(jù)存儲(chǔ)中。

    public abstract void makePersistent(Object);    public abstract void makePersistentAll(Object[]);    public abstract void makePersistentAll(java.util.Collection);

通過下面幾個(gè)方法實(shí)現(xiàn)把JDO實(shí)例對(duì)象添加到數(shù)據(jù)存儲(chǔ)中的過程:

    // 獲得一個(gè) manager...    PersistenceManager manager = managerFactory.getPersistenceManager();    // 下面的 Employee 必須擴(kuò)展了 PersistenceCapable...    Employee newEmployee = new Employee(...);    manager.makePersistent(newEmployee);

javax.jdo.Extent
Extent (范圍)對(duì)象表示所有的在當(dāng)前數(shù)據(jù)庫中實(shí)際的類對(duì)象。
在PersistenceManager 中的一個(gè)工廠方法負(fù)責(zé)獲得一個(gè)Extent (范圍)對(duì)象。

    public Extent getExtent(Class persistenceCapableClass, boolean subclasses)

Class參數(shù)標(biāo)明了接收的對(duì)象類型。boolean 參數(shù)標(biāo)明是否包含第一個(gè)參數(shù)指定的類的子類。

Extent 接口定義了一個(gè)iterator()方法,它返回一個(gè) java.util.Iterator來遍歷所有由Extent 描述的實(shí)例。

    //獲得一個(gè) manager...    PersistenceManager manager = managerFactory.getPersistenceManager();    // the Employee class must implement PersistenceCapable...    Extent employeesExtent = manager.getExtent(Employee.class, false);    java.util.Iterator iterator = employeesExtent.iterator();

javax.jdo.Query
Query 接口允許從數(shù)據(jù)存儲(chǔ)中獲得符合某些條件的實(shí)例。Query 實(shí)例可以重載自PersistenceManager 接口中的newQuery()方法獲得。
Query 接口定義了幾個(gè)不同版本的重載execute() 的方法,這些方法將執(zhí)行查詢(Query) 并返回匹配的結(jié)果。

    // 獲得一個(gè) manager...    PersistenceManager manager = managerFactory.getPersistenceManager();    // Employee 類必須實(shí)現(xiàn) PersistenceCapable接口...    Extent employeesExtent = manager.getExtent(Employee.class, false);    // 一個(gè)Query 獲得所有在公司工作五年以上的 Employees....    Query query = manager.newQuery(Employee.class, employeesExtent,            "yearsOfEmployement > 5");    // 執(zhí)行查詢Query...    Collection employees = (Collection) query.execute();    // 處理結(jié)果...    Iterator iterator = employees.iterator();    while (iterator.hasNext()) {        Employee employee = (Employee) iterator.next();        (...)    }    

注意newQuery()方法的第三個(gè)參數(shù)"yearsOfEmployement > 5"。它標(biāo)明了返回結(jié)果的條件。上面的實(shí)現(xiàn)要求Employee 類中必須有一個(gè)屬性字段叫yearsOfEmployment 。

from javaresearch

(出處:http://m.survivalescaperooms.com)



發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 石门县| 孟连| 屏边| 台中市| 莱西市| 罗平县| 新化县| 东方市| 叙永县| 井研县| 新余市| 兴和县| 花莲市| 宜春市| 新巴尔虎右旗| 和静县| 普宁市| 宜黄县| 新田县| 灵台县| 洛宁县| 施秉县| 遂昌县| 西城区| 新建县| 冷水江市| 丘北县| 潼关县| 河源市| 昂仁县| 大渡口区| 福州市| 竹山县| 东兴市| 太保市| 惠来县| 从化市| 白银市| 莱阳市| 唐河县| 泗水县|