麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

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

全面研讀EJB 2.0(3)

2019-11-18 13:47:38
字體:
供稿:網(wǎng)友

  全面研讀EJB 2.0(3)

· EJB 查詢語言

EJB 查詢語言 (EJB QL) 規(guī)定了持久性治理器應(yīng)該如何實(shí)現(xiàn)在本地接口中定義的各種查找方法。 EJB QL 以 SQL-92 為基礎(chǔ),可由持久性治理器自動編譯,這使得實(shí)體 bean 具有更高的可移植性,并且更輕易部署。

· EJB QL 和查找方法

EJB QL 語句是在實(shí)體 bean 的部署描述符中聲明的。使用 EJB QL 非常簡單。作為一個例子,Employee bean 的本地接口可以按以下方式聲明:

public interface EmployeeHome extends javax.ejb.EJBHome
{
...
public Employee findByPRimaryKey(Integer id)
throws RemoteException, CreateException;
public Collection findByZipCode(String zipcode)
throws RemoteException, CreateException;
public Collection findByInvestment(String
investmentName)
throws RemoteException, CreateException;
}

給定了上面的本地接口定義之后,您就可以使用 EJB QL 來指定持久性治理器應(yīng)該如何執(zhí)行查找方法。每個實(shí)體 bean 都必須有一個 findByPrimaryKey() 方法。為執(zhí)行該方法所需的查詢是很明顯的 -- 使用主要害字的(一個或幾個)字段在數(shù)據(jù)庫中查找 bean,這樣就不需要任何 EJB QL 語句。

findByZipCode() 方法用來獲得具有某個郵政編碼的所有 Employee bean。這將使用部署描述符中的下列 EJB QL 來表達(dá)。

FROM contactInfo WHERE contactInfo.zip = ?1

該語句本質(zhì)上是表示“選擇其郵政編碼等于 zipcode 參數(shù)的所有 Employee bean”。

在用于查找方法的 EJB QL 語句中,不需要使用 SELECT 子句來表明要選擇的內(nèi)容。這是因?yàn)椋檎曳椒▽⒖偸沁x擇與其自身的 bean 類型相同的遠(yuǎn)程引用。在這種情況下,就可以認(rèn)為選擇語句將返回遠(yuǎn)程 Employee bean 的全部引用。

假如各種查找方法都一起部署在同一個 ejb-jar 文件中,并且其間具有可導(dǎo)航的實(shí)際關(guān)系,那么這些查找方法就甚至可以跨越到另一些 bean 的抽象持久性方案中去。例如,findByInvestment() 方法將要求該查找查詢從 Employee 導(dǎo)航到投資 bean 的抽象持久性方案中去。聲明來表達(dá)這種查找操作的 EJB QL 語句如下所示。

FROM element IN benefit.investments WHERE element.name
= ?1


以上語句是說:“選擇全部這樣的 Employee bean:其獲利從屬對象至少包含一個投資 bean 的引用,并且其名稱等于 findByInvestment() 方法的 investmentName 參數(shù)。”

· EJB QL 和選擇方法

EJB QL 也用于一種稱為 ejbSelect 方法的新查詢方法中,該方法類似于查找方法,只是它僅供 bean 類使用。該方法不在本地接口中聲明,所以也不顯露給客戶機(jī)。此外,ejbSelect 方法可返回范圍更大的各種值,而不僅限于 bean 本身的遠(yuǎn)程接口類型。

存在兩種選擇方法:ejbSelect<METHOD> 和 ejbSelect<METHOD>InEntity。ejbSelect<METHOD> 方法是全局執(zhí)行的,這是指這種方法并非專用于執(zhí)行該方法的 bean 實(shí)例。ejbSelect<METHOD>InEntity 方法則專用于執(zhí)行該方法的實(shí)體實(shí)例。這些選擇方法在 bean 類中被聲明為抽象方法,并在這些類的業(yè)務(wù)方法中使用。下面是 ejbSelect<METHOD> 方法和 ejbSelect<METHOD>InEntity 方法的示例,同時說明了可以如何在業(yè)務(wù)方法中使用它們。

public abstract class EmployeeBean implements
javax.ejb.EntityBean {
...
// ejbSelectInEntity
public abstract Collection
ejbSelectInvestmentsInEntity (String risk);
// ejbSelect
public abstract Collection
ejbSelectInvestments(String risk);
...
}

在上面的聲明中,兩種選擇方法運(yùn)行于不同的范圍。ejbSelectInvestmentsInEntity() 僅在當(dāng)前的 Employee bean 實(shí)例上執(zhí)行,所以它只返回雇員的風(fēng)險(xiǎn)投資。

SELECT invest FROM invest IN benefit.investments WHERE
invest.type = ?1

另一方面,ejbSelect<METHOD> 方法的范圍則是全局性的,所以同一個查詢將返回整個企業(yè)內(nèi)所有雇員的全部風(fēng)險(xiǎn)投資。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 久久久久av电影 | 欧美性a视频 | 成人在线视频精品 | 毛片网站视频 | 日本中文字幕网址 | 成人mm视频在线观看 | 亚洲特黄妇女高潮 | 久久久www视频 | 亚洲精品一区国产精品丝瓜 | 久久99久久98精品免观看软件 | 黄网站免费入口 | 免费看黄色一级片 | 日韩欧美色综合 | 在线成人免费观看视频 | 一本色道久久综合狠狠躁篇适合什么人看 | 91久久久久久久久久久久久久 | 久久99精品久久久久久园产越南 | 国产一区网址 | 国产视频在线观看免费 | 亚洲成人欧美在线 | 国产成人精品一区二区视频免费 | 日日草夜夜 | 国产精品视频亚洲 | 成片免费观看大全 | av国产片| 91福利免费视频 | 久久精品亚洲欧美日韩精品中文字幕 | 免费观看又色又爽又黄的崩锅 | 国产一国产一级毛片视频 | 在线观看麻豆 | 中文字幕免费在线看 | 狠狠ri| 国内精品免费一区二区2001 | 欧美a在线播放 | 欧美日韩高清一区二区三区 | 一区二区三高清 | 在线播放黄色片 | 国产午夜精品一区二区三区四区 | 欧美日韩中文字幕在线视频 | 久久久久久久一区 | 亚洲网站在线观看视频 |