亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ejb2_0中的變化增強,應用程序開發的靈活性和可移植性3.htm

?? 寫給JSP初級程序員的書
?? HTM
字號:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0056)http://eps.www85.cn4e.com/java/article/devshow.asp?id=68 -->
<HTML><HEAD><title>csdn_EJB2.0中的變化增強,應用程序開發的靈活性和可移植性3</TITLE>
<META content="text/html; charset=gb2312" http-equiv=Content-Type>
<STYLE type=text/css>TD {
	FONT-FAMILY: "Verdana", "Arial", "宋體"; FONT-SIZE: 9pt
}
A {
	COLOR: #660000; TEXT-DECORATION: underline
}
A:hover {
	COLOR: #660000; TEXT-DECORATION: none
}
.line {
	LINE-HEIGHT: 14pt
}
</STYLE>

<META content="MSHTML 5.00.2920.0" name=GENERATOR></HEAD>
<BODY bgColor=#ffffff text=#000000>
<table>
  <table><tbody>
  <TR>
    <TD height=21>
      <DIV align=center><B><FONT size=3>EJB2.0中的變化增強,應用程序開發的靈活性和可移植性3 <BR><FONT size=2> </FONT></FONT></FONT>
      <HR align=center color=#cccccc noShade SIZE=1>
      </DIV></TD></TR>
  <TR>
    <TD class=line><FONT 
      color=#333300><BR><BR>在部署時,部署者將使用持久性管理器工具來具體實現這個&nbsp;bean&nbsp;類及其從屬類。這些具體實現將在運行時保持各種關系,并使各&nbsp;bean&nbsp;實例的狀態與數據庫同步。容器將在運行時管理持久性實例,從而提供一種強健的環境,其中具有自動的訪問控制和事務控制。&nbsp;<BR><BR>bean&nbsp;也可以定義從屬對象的值,這些對象是可序列化的對象,如&nbsp;EJB&nbsp;1.1&nbsp;示例中的&nbsp;Address&nbsp;對象。這些值通過序列化而變為持久的,它們并不形成與&nbsp;bean&nbsp;的關系&nbsp;--&nbsp;它們是嚴格的容器管理的持久性字段。&nbsp;<BR><BR>容器與持久性管理器之間也已經定義了一個合約,使持久性管理器可以獲得事務的句柄,并訪問由該容器管理的數據庫連接池。這個合約稍嫌寬松,將來還需要使其更為嚴格,但它是允許持久性管理器跨&nbsp;EJB&nbsp;容器移植的基礎。容器和持久性管理器之間合約的細節已超出了本文的范圍。&nbsp;<BR><BR>除了通過抽象持久性方案定義持久性之外,EJB&nbsp;2.0&nbsp;還提供了一種新的查詢語言,用來說明持久性管理器應該如何實現&nbsp;CMP&nbsp;中的各種查找方法。&nbsp;<BR><BR>EJB&nbsp;查詢語言&nbsp;<BR>EJB&nbsp;查詢語言&nbsp;(EJB&nbsp;QL)&nbsp;規定了持久性管理器應該如何實現在本地接口中定義的各種查找方法。&nbsp;EJB&nbsp;QL&nbsp;以&nbsp;SQL-92&nbsp;為基礎,可由持久性管理器自動編譯,這使得實體&nbsp;bean&nbsp;具有更高的可移植性,并且更容易部署。&nbsp;<BR><BR>EJB&nbsp;QL&nbsp;和查找方法&nbsp;<BR>EJB&nbsp;QL&nbsp;語句是在實體&nbsp;bean&nbsp;的部署描述符中聲明的。使用&nbsp;EJB&nbsp;QL&nbsp;非常簡單。作為一個例子,Employee&nbsp;bean&nbsp;的本地接口可以按以下方式聲明:&nbsp;<BR><BR>public&nbsp;interface&nbsp;EmployeeHome&nbsp;extends&nbsp;javax.ejb.EJBHome&nbsp;<BR>{&nbsp;<BR>...&nbsp;<BR><BR>public&nbsp;Employee&nbsp;findByPrimaryKey(Integer&nbsp;id)&nbsp;<BR>throws&nbsp;RemoteException,&nbsp;CreateException;&nbsp;<BR><BR>public&nbsp;Collection&nbsp;findByZipCode(String&nbsp;zipcode)&nbsp;<BR>throws&nbsp;RemoteException,&nbsp;CreateException;&nbsp;<BR><BR>public&nbsp;Collection&nbsp;findByInvestment(String&nbsp;<BR>investmentName)&nbsp;<BR>throws&nbsp;RemoteException,&nbsp;CreateException;&nbsp;<BR><BR>}&nbsp;<BR><BR><BR><BR>給定了上面的本地接口定義之后,您就可以使用&nbsp;EJB&nbsp;QL&nbsp;來指定持久性管理器應該如何執行查找方法。每個實體&nbsp;bean&nbsp;都必須有一個&nbsp;findByPrimaryKey()&nbsp;方法。為執行該方法所需的查詢是很明顯的&nbsp;--&nbsp;使用主關鍵字的(一個或幾個)字段在數據庫中查找&nbsp;bean,這樣就不需要任何&nbsp;EJB&nbsp;QL&nbsp;語句。&nbsp;<BR><BR>findByZipCode()&nbsp;方法用來獲得具有某個郵政編碼的所有&nbsp;Employee&nbsp;bean。這將使用部署描述符中的下列&nbsp;EJB&nbsp;QL&nbsp;來表達。&nbsp;<BR><BR>FROM&nbsp;contactInfo&nbsp;WHERE&nbsp;contactInfo.zip&nbsp;=&nbsp;?1&nbsp;<BR><BR>該語句本質上是表示“選擇其郵政編碼等于&nbsp;zipcode&nbsp;參數的所有&nbsp;Employee&nbsp;bean”。&nbsp;<BR><BR>在用于查找方法的&nbsp;EJB&nbsp;QL&nbsp;語句中,不需要使用&nbsp;SELECT&nbsp;子句來表明要選擇的內容。這是因為,查找方法將總是選擇與其自身的&nbsp;bean&nbsp;類型相同的遠程引用。在這種情況下,就可以認為選擇語句將返回遠程&nbsp;Employee&nbsp;bean&nbsp;的全部引用。&nbsp;<BR><BR>如果各種查找方法都一起部署在同一個&nbsp;ejb-jar&nbsp;文件中,并且其間具有可導航的實際關系,那么這些查找方法就甚至可以跨越到另一些&nbsp;bean&nbsp;的抽象持久性方案中去。例如,findByInvestment()&nbsp;方法將要求該查找查詢從&nbsp;Employee&nbsp;導航到投資&nbsp;bean&nbsp;的抽象持久性方案中去。聲明來表達這種查找操作的&nbsp;EJB&nbsp;QL&nbsp;語句如下所示。&nbsp;<BR><BR>FROM&nbsp;element&nbsp;IN&nbsp;benefit.investments&nbsp;WHERE&nbsp;element.name&nbsp;<BR>=&nbsp;?1&nbsp;<BR><BR><BR><BR>以上語句是說:“選擇全部這樣的&nbsp;Employee&nbsp;bean:其獲利從屬對象至少包含一個投資&nbsp;bean&nbsp;的引用,并且其名稱等于&nbsp;findByInvestment()&nbsp;方法的&nbsp;investmentName&nbsp;參數。”&nbsp;<BR><BR>EJB&nbsp;QL&nbsp;和選擇方法&nbsp;<BR>EJB&nbsp;QL&nbsp;也用于一種稱為&nbsp;ejbSelect&nbsp;方法的新查詢方法中,該方法類似于查找方法,只是它僅供&nbsp;bean&nbsp;類使用。該方法不在本地接口中聲明,所以也不顯露給客戶機。此外,ejbSelect&nbsp;方法可返回范圍更大的各種值,而不僅限于&nbsp;bean&nbsp;本身的遠程接口類型。&nbsp;<BR><BR>存在兩種選擇方法:ejbSelect&lt;METHOD&gt;&nbsp;和&nbsp;ejbSelect&lt;METHOD&gt;InEntity。ejbSelect&lt;METHOD&gt;&nbsp;方法是全局執行的,這是指這種方法并非專用于執行該方法的&nbsp;bean&nbsp;實例。ejbSelect&lt;METHOD&gt;InEntity&nbsp;方法則專用于執行該方法的實體實例。這些選擇方法在&nbsp;bean&nbsp;類中被聲明為抽象方法,并在這些類的業務方法中使用。下面是&nbsp;ejbSelect&lt;METHOD&gt;&nbsp;方法和&nbsp;ejbSelect&lt;METHOD&gt;InEntity&nbsp;方法的示例,同時說明了可以如何在業務方法中使用它們。&nbsp;<BR><BR>public&nbsp;abstract&nbsp;class&nbsp;EmployeeBean&nbsp;implements&nbsp;<BR>javax.ejb.EntityBean&nbsp;{&nbsp;<BR>...&nbsp;<BR>//&nbsp;ejbSelectInEntity&nbsp;<BR>public&nbsp;abstract&nbsp;Collection&nbsp;<BR>ejbSelectInvestmentsInEntity&nbsp;(String&nbsp;risk);&nbsp;<BR><BR>//&nbsp;ejbSelect&nbsp;<BR>public&nbsp;abstract&nbsp;Collection&nbsp;<BR>ejbSelectInvestments(String&nbsp;risk);&nbsp;<BR>...&nbsp;<BR>}&nbsp;<BR><BR><BR><BR>在上面的聲明中,兩種選擇方法運行于不同的范圍。ejbSelectInvestmentsInEntity()&nbsp;僅在當前的&nbsp;Employee&nbsp;bean&nbsp;實例上執行,所以它只返回雇員的風險投資。&nbsp;<BR><BR>SELECT&nbsp;invest&nbsp;FROM&nbsp;invest&nbsp;IN&nbsp;benefit.investments&nbsp;WHERE&nbsp;<BR>invest.type&nbsp;=&nbsp;?1&nbsp;<BR><BR><BR><BR>另一方面,ejbSelect&lt;METHOD&gt;&nbsp;方法的范圍則是全局性的,所以同一個查詢將返回整個企業內所有雇員的全部風險投資。&nbsp;<BR><BR>ejbSelect&lt;METHOD&gt;InEntity&nbsp;選擇方法可以返回&nbsp;bean&nbsp;的遠程類型(如在上面的查詢中那樣)、從屬對象或任何其它&nbsp;Java&nbsp;類型。另一方面,全局選擇方法則不能返回&nbsp;bean&nbsp;的從屬對象類型。&nbsp;<BR><BR>選擇方法的&nbsp;EJB&nbsp;QL&nbsp;語句要求使用&nbsp;SELECT&nbsp;子句,因為它們能夠返回范圍更廣的各種值。&nbsp;<BR><BR>新的&nbsp;ejbHome&nbsp;方法&nbsp;<BR>在&nbsp;EJB&nbsp;2.0&nbsp;中,實體&nbsp;bean&nbsp;可以聲明一些&nbsp;ejbHome&nbsp;方法,用來執行與&nbsp;EJB&nbsp;組件相關的操作,但并不專用于某個&nbsp;bean&nbsp;實例。在&nbsp;bean&nbsp;類中定義的&nbsp;ejbHome&nbsp;方法在本地接口中必須有一個與其相匹配的本地方法。下面的代碼說明了一個本地方法,它正是作為&nbsp;Employee&nbsp;bean&nbsp;的本地接口定義的。applyCola()&nbsp;方法用來根據最近&nbsp;COLA(生活費用調整)的增長來更新所有雇員的薪水。&nbsp;<BR><BR><BR>public&nbsp;interface&nbsp;EmployeeHome&nbsp;extends&nbsp;javax.ejb.EJBHome&nbsp;<BR>{&nbsp;<BR>//&nbsp;本地方法&nbsp;<BR>public&nbsp;void&nbsp;applyCola(double&nbsp;increate)&nbsp;throws&nbsp;<BR>RemoteException;&nbsp;<BR>...&nbsp;<BR>}&nbsp;<BR><BR><BR><BR>applyCola()&nbsp;方法在&nbsp;bean&nbsp;類中必須有匹配的&nbsp;ejbHome&nbsp;方法,它被聲明為&nbsp;ejbHomeApplyCola()。ejbHomeApplyCola()&nbsp;方法并非專用于一個&nbsp;bean&nbsp;實例,它的范圍是全局的,所以它將對所有雇員的薪水使用同一個&nbsp;COLA。&nbsp;<BR><BR>public&nbsp;abstract&nbsp;class&nbsp;EmployeeBean&nbsp;implements&nbsp;<BR>javax.ejb.EntityBean&nbsp;{&nbsp;<BR>...&nbsp;<BR>//&nbsp;ejbHome&nbsp;方法&nbsp;<BR>public&nbsp;void&nbsp;ejbHomeApplyCola&nbsp;(double&nbsp;increase&nbsp;){&nbsp;<BR>Collection&nbsp;col&nbsp;=&nbsp;ejbSelectAllEmployees&nbsp;();&nbsp;<BR>Iterator&nbsp;employees&nbsp;=&nbsp;col.iterator();&nbsp;<BR>while(employees.next()){&nbsp;<BR>Employee&nbsp;emp&nbsp;=&nbsp;<BR>(Employee)employees.next();&nbsp;<BR>double&nbsp;salary&nbsp;=&nbsp;<BR>emp.getAnnualSalary();&nbsp;<BR>salary&nbsp;=&nbsp;salary&nbsp;+&nbsp;(salary*increase);&nbsp;<BR>emp.setAnnualSalary(salary);&nbsp;<BR>}&nbsp;<BR>}&nbsp;<BR>}&nbsp;<BR><BR><BR><BR>bean&nbsp;的開發人員需要為&nbsp;BMP&nbsp;和&nbsp;CMP&nbsp;實體&nbsp;bean&nbsp;都實現&nbsp;ejbHome&nbsp;方法。CMP&nbsp;實現可能在很大程度上要依賴于全局的選擇語句(如上面所說明的那樣)和&nbsp;finder&nbsp;方法,而&nbsp;ejbHome&nbsp;的&nbsp;BMP&nbsp;實現則將使用直接數據庫訪問和&nbsp;bean&nbsp;的&nbsp;finder&nbsp;方法,來查詢數據和進行更改。&nbsp;<BR><BR>MessageDrivenBean&nbsp;<BR>在&nbsp;EJB&nbsp;2.0&nbsp;中,對規范的一個基礎性更改是添加了一種全新的企業級&nbsp;bean&nbsp;類型,即&nbsp;MessageDrivenBean。MessageDrivenBean&nbsp;專門設計來處理入網的&nbsp;JMS&nbsp;消息。對于許多開發人員來說,JMS&nbsp;是一種新的范例,所以本文將花一些時間逐步說明對&nbsp;JMS&nbsp;的理解,以及它們在&nbsp;EJB&nbsp;2.0&nbsp;中的用法。&nbsp;<BR><BR>什么是&nbsp;JMS?&nbsp;<BR>JMS&nbsp;是一種與廠商無關的&nbsp;API,用來訪問消息收發系統。它類似于&nbsp;JDBC&nbsp;(Java&nbsp;Database&nbsp;Connectivity):這里,JDBC&nbsp;是可以用來訪問許多不同關系數據庫的&nbsp;API,而&nbsp;JMS&nbsp;則提供同樣與廠商無關的訪問方法,以訪問消息收發服務。許多廠商目前都支持&nbsp;JMS,包括&nbsp;IBM&nbsp;的&nbsp;MQSeries、BEA&nbsp;的&nbsp;Weblogic&nbsp;JMS&nbsp;service&nbsp;和&nbsp;Progress&nbsp;的&nbsp;SonicMQ,這只是幾個例子。&nbsp;<BR><BR>JMS&nbsp;使您能夠通過消息收發服務(有時稱為消息中介程序或路由器)從一個&nbsp;JMS&nbsp;客戶機向另一個&nbsp;JML&nbsp;客戶機發送消息。消息是&nbsp;JMS&nbsp;中的一種類型對象,由兩部分組成:報頭和消息主體。報頭由路由信息以及有關該消息的元數據組成。消息主體則攜帶著應用程序的數據或有效負載。根據有效負載的類型來劃分,可以將消息分為幾種類型,它們分別攜帶:簡單文本&nbsp;(TextMessage)、可序列化的對象&nbsp;(ObjectMessage)、屬性集合&nbsp;(MapMessage)、字節流&nbsp;(BytesMessage)、原始值流&nbsp;(StreamMessage),還有無有效負載的消息&nbsp;(Message)。&nbsp;<BR><BR>消息收發系統是異步的,也就是說,JMS&nbsp;客戶機可以發送消息而不必等待回應。比較可知,這完全不同于基于&nbsp;RPC&nbsp;的(基于遠程過程的)系統,如&nbsp;EJB&nbsp;1.1、CORBA&nbsp;和&nbsp;Java&nbsp;RMI&nbsp;的引用實現。在&nbsp;RPC&nbsp;中,客戶機調用服務器上某個分布式對象的一個方法。在方法調用返回之前,該客戶機被阻塞;該客戶機在可以執行下一條指令之前,必須等待方法調用結束。在&nbsp;JMS&nbsp;中,客戶機將消息發送給一個虛擬通道(主題或隊列),而其它&nbsp;JMS&nbsp;客戶機則預訂或監聽這個虛擬通道。當&nbsp;JMS&nbsp;客戶機發送消息時,它并不等待回應。它執行發送操作,然后繼續執行下一條指令。消息可能最終轉發到一個或許多個客戶機,這些客戶機都不需要作出回應&nbsp;<BR><BR></FONT></TD></TR>
  <TR>
    <TD height=5>
      <HR align=center color=#cccccc noShade SIZE=1>
    </TD></TR></TBODY></BODY></HTML>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩极品在线观看一区| 99久久精品国产网站| 国产欧美日韩精品一区| 91片在线免费观看| 国内成人精品2018免费看| 亚洲色大成网站www久久九九| 91精品久久久久久久久99蜜臂| 国产69精品久久777的优势| 午夜电影一区二区| 国产精品不卡一区二区三区| 精品久久久久久无| 欧美丰满美乳xxx高潮www| bt欧美亚洲午夜电影天堂| 黄色资源网久久资源365| 亚洲成人一区二区在线观看| 国产精品美女久久福利网站| 欧美成人精品高清在线播放| 欧美色图12p| 91丨porny丨国产| 成人三级在线视频| 国精产品一区一区三区mba桃花 | 天天免费综合色| 综合在线观看色| 国产欧美一区二区精品性| 日韩欧美中文字幕一区| 欧美日韩高清在线播放| 91小宝寻花一区二区三区| 国产精品99久久久久久久vr| 美女视频一区二区三区| 日韩精品91亚洲二区在线观看| 亚洲精品国产精华液| 国产精品美女久久久久高潮| 久久久久久免费网| 久久久国产一区二区三区四区小说| 欧美一级精品在线| 欧美一区二区美女| 欧美一区二区三区在线| 91精品国产欧美一区二区成人| 欧美性大战久久| 精品视频一区三区九区| 欧美色精品在线视频| 欧日韩精品视频| 欧美性受xxxx黑人xyx性爽| 91行情网站电视在线观看高清版| 91蜜桃在线观看| 色婷婷综合久久久中文一区二区| 91蜜桃网址入口| 在线观看日韩高清av| 欧美日韩免费一区二区三区| 欧美日韩一级片网站| 666欧美在线视频| 51精品秘密在线观看| 日韩精品一区二| 久久在线观看免费| 欧美激情中文字幕一区二区| 中文子幕无线码一区tr| 亚洲伦理在线免费看| 亚洲国产美女搞黄色| 日韩电影一二三区| 国产在线视频精品一区| 成人黄色电影在线| 91久久线看在观草草青青 | 国产午夜精品一区二区| 久久夜色精品一区| 国产欧美一区二区三区沐欲| 亚洲图片激情小说| 日韩黄色免费电影| 国产成都精品91一区二区三| 91视频在线看| 欧美一区二区视频在线观看2020| 精品国产乱码久久久久久久| 国产精品久久久久久久第一福利 | 韩国一区二区在线观看| 成人免费不卡视频| 欧美日韩国产不卡| 久久精品亚洲麻豆av一区二区| 综合久久国产九一剧情麻豆| 亚洲福利视频一区二区| 韩国三级在线一区| 91视频一区二区三区| 日韩欧美中文一区| 国产精品久久久久9999吃药| 亚洲亚洲人成综合网络| 韩国女主播一区| 91福利社在线观看| 欧美精品一区二区三区四区 | 欧美国产亚洲另类动漫| 亚洲成人tv网| 国产91富婆露脸刺激对白| 欧美日韩激情一区| 国产欧美精品区一区二区三区| 一区二区免费看| 久久99久久99精品免视看婷婷| 99久久综合狠狠综合久久| 欧美一级片在线观看| 亚洲日本欧美天堂| 国产一区二区女| 欧美精品99久久久**| 国产精品免费久久| 久久成人综合网| 欧美在线不卡一区| 国产精品嫩草影院com| 美国三级日本三级久久99| 色香蕉久久蜜桃| 久久九九久久九九| 日本 国产 欧美色综合| 91激情五月电影| 日本一区二区动态图| 精品系列免费在线观看| 欧美绝品在线观看成人午夜影视| 国产精品理论在线观看| 久久精品国产一区二区| 欧美日韩国产三级| 一区二区三区四区乱视频| 国产福利一区二区| 精品日韩在线观看| 青青草一区二区三区| 欧美亚洲综合在线| 亚洲精品自拍动漫在线| 不卡的av中国片| 日本一区二区三区国色天香 | 久久婷婷成人综合色| 日本不卡在线视频| 欧美日韩国产首页| 亚洲午夜av在线| 在线亚洲精品福利网址导航| 国产精品的网站| www.日韩在线| 国产精品三级在线观看| 国产成人精品亚洲日本在线桃色| 日韩精品中文字幕在线不卡尤物| 日韩精彩视频在线观看| 欧美久久久影院| 日韩制服丝袜先锋影音| 欧美精品电影在线播放| 午夜电影网一区| 欧美一二三区在线观看| 免费成人在线播放| 欧美大片国产精品| 韩国一区二区视频| 久久久精品免费网站| 国产成人无遮挡在线视频| 久久久久99精品国产片| 成人一级片网址| 亚洲欧洲精品一区二区精品久久久| 不卡av在线网| 亚洲欧美aⅴ...| 欧美日韩在线三级| 日韩精彩视频在线观看| 精品理论电影在线| 国产jizzjizz一区二区| 国产精品大尺度| 欧美日韩视频在线一区二区| 日韩成人午夜电影| 亚洲精品一区二区精华| 丰满岳乱妇一区二区三区| 国产精品你懂的| 欧美午夜电影一区| 日本最新不卡在线| 久久久91精品国产一区二区精品| 成人av午夜影院| 亚洲成人精品一区| 精品精品国产高清一毛片一天堂| 国产黄人亚洲片| 亚洲精品成人精品456| 欧美一区二区三区的| 国产美女久久久久| 亚洲摸摸操操av| 69堂精品视频| 丁香一区二区三区| 亚洲午夜免费视频| 久久夜色精品国产欧美乱极品| 成人久久18免费网站麻豆| 一区二区三区自拍| 精品嫩草影院久久| 99精品在线免费| 麻豆久久久久久| 自拍偷拍欧美精品| 日韩免费看的电影| 99精品久久99久久久久| 欧美bbbbb| **性色生活片久久毛片| 欧美一区二区性放荡片| 成人免费看视频| 肉丝袜脚交视频一区二区| 国产亚洲欧美在线| 欧美日韩国产bt| 成人app在线| 久久国产精品无码网站| 亚洲欧美一区二区三区国产精品 | 亚洲精品在线电影| 91久久线看在观草草青青| 国产制服丝袜一区| 亚洲一区二区三区四区中文字幕| 久久亚洲欧美国产精品乐播| 在线中文字幕一区| 成人午夜伦理影院| 久久精品国产色蜜蜜麻豆| 亚洲精品成人少妇| 中文字幕成人在线观看|