亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

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

實(shí)體 Bean 和 CMP

2019-11-18 14:27:27
字體:
供稿:網(wǎng)友

  什么是一個(gè)實(shí)體(Entity) Bean
一個(gè)持久對(duì)象
通常它是被當(dāng)成一樣"東西",或者會(huì)長(zhǎng)期存在的
BankAccount
Employee
Order
不僅僅只是數(shù)據(jù)--狀態(tài)和行為,與常規(guī)對(duì)象一樣
數(shù)據(jù)庫中的實(shí)體 Bean
一個(gè)實(shí)體 bean 直接映射到數(shù)據(jù)庫中的一行數(shù)據(jù)

ID LASTNM MGR DEPT SALARY
... ... ... ... ...
42 "Joe" Smith 0 55000.0
97 "Bob" Jones 42 40000.0
102 "Mary" Chen 987 63000.0
... ... ... ... ...


Employee
id: int
first: string
last: string
Salary: double
Managerld: int
Dpartmentld: int
Entity Bean 和 Persistence

根據(jù)規(guī)范定義,實(shí)體 Bean 一旦被創(chuàng)建后就存在
它們被直接寫到數(shù)據(jù)庫中
可以不受任何服務(wù)器的宕機(jī)影響
Create 方法必需提供足夠的信息將 Bean 保存到數(shù)據(jù)庫中
實(shí)體 Bean 與 會(huì)話 Bean 的區(qū)別

實(shí)體 Bean
持久對(duì)象; 不受服務(wù)器宕機(jī)影響
有一個(gè)主鍵; 可以被搜索到
可以被共享
必需被顯式刪除
會(huì)話 Bean
不是持久的; 受服務(wù)器宕機(jī)影響
不可以被搜索
通常一個(gè)用戶使用一個(gè) bean
過一段非活動(dòng)期后將被自動(dòng)回收


Aside: 什么是一個(gè)主鍵?

(一個(gè)或多個(gè))域可以唯一地區(qū)別一行數(shù)據(jù)/一個(gè) bean--用來查找和更新數(shù)據(jù)/對(duì)象
在數(shù)據(jù)/對(duì)象的生命周期中是不變的--主鍵是基于不變的數(shù)據(jù)
主鍵通常是生成的而不是基于"活躍"的數(shù)據(jù)
SSN 顯然適合于作為一個(gè)主鍵
就算錯(cuò)誤選擇的主鍵不能再被修改
Aside: 什么是一個(gè)關(guān)系型數(shù)據(jù)庫?

數(shù)據(jù)庫: 一組數(shù)據(jù)集合可以被檢索和查找--一個(gè)關(guān)系型數(shù)據(jù)庫維持不同行數(shù)據(jù)間的關(guān)系

數(shù)據(jù)被組織成表格--外鍵(Foreign Key)用來映射關(guān)系、StrUCtured Query Language (SQL) 用來操作數(shù)據(jù)庫

讀 (select), 寫 (insert, update), 刪除 (delete)

同步訪問的控制

容器治理同步訪問--線程獲得對(duì) Bean 的獨(dú)有訪問、即 Bean 的每個(gè)方法是 synchronized



警告: 當(dāng)心死鎖!

Bean 本身也是客戶!
Client 1 有對(duì) Bean 1 的獨(dú)有鎖
Client 2 有對(duì) Bean 2 的獨(dú)有鎖
Bean 1 必需等待 Client 2 的結(jié)束
Bean 2 必需等待 Client 1 的結(jié)束
沒有任何一方得到鎖!


實(shí)體 Bean 有主鍵

主鍵用來唯一地區(qū)別 bean--類似于數(shù)據(jù)庫主鍵的概念

主鍵類:必需反映 bean 類的"要害"狀態(tài)、必需提供 equals(...) 和 hashCode() 方法

主鍵可能由多個(gè)域組成

...
Employee employee
= employeeHome.findByPRimaryKey(new EmployeeKey(42));
...



Create 方法

Home 定義了一個(gè)或多個(gè) "create" 方法--在創(chuàng)建后,Bean 必需馬上被寫到數(shù)據(jù)庫

EmployeeHome method
Employee create(int arg1, String arg2, String arg3)
throws CreateException, RemoteException


EmployeeBean method
public void ejbCreate(int argId, String first, String last)
throws CreateException, RemoteException {
id = argId;
setFirst(first);
setLast(last);
setManagerId(0);
setDepartmentId(0);
}



Post-Create

對(duì)每個(gè) ejbCreate 方法必需有一個(gè) ejbPostCreate--有相同的參數(shù)

容器將:
調(diào)用 ejbCreate(...) 方法, 它將返回所創(chuàng)建實(shí)體的一個(gè)主鍵
創(chuàng)建對(duì)應(yīng)該主鍵的一個(gè) EJB 對(duì)象引用
調(diào)用 ejbPostCreate(...) 方法通知實(shí)例來完全初始化它本身
public void ejbPostCreate(int argId, String first, String last)
throws CreateException, RemoteException {
}



Finder 方法

Bean home 接口定義了 "ejbFind" 方法---通過 VAJ 的 Persistence Lay, 容器提供一個(gè)實(shí)現(xiàn)

方法將返回:---單個(gè)結(jié)果的 Remote 接口、多個(gè)結(jié)果的 Enumeration

Must be provided
Employee findByPrimaryKey(EmployeeKey key)
throws RemoteException, FinderException;


Employee findById(int id)
throws RemoteException, FinderException;
Enumeration findByLastLike(String pattern)
throws RemoteException, FinderException;
Enumeration findBySalaryRange(double low, double high)
throws RemoteException, FinderException;



生命周期



Container-Managed Persistence

容器治理 Bean 的生命周期--何時(shí)創(chuàng)建、載入、存儲(chǔ)和刪除
容器提供存儲(chǔ)機(jī)制--如何創(chuàng)建、載入、存儲(chǔ)和刪除
Bean 部屬人員定義 Bean 和數(shù)據(jù)庫之間的映射
VisualAge 和 CMP

VisualAge 提供工具來:
從一個(gè)數(shù)據(jù)庫模式(schema)來創(chuàng)建 Bean
從實(shí)體 Bean來創(chuàng)建數(shù)據(jù)庫模式
Meet in the middle: 利用現(xiàn)有的 Bean 和模式
構(gòu)建一個(gè)實(shí)體 Bean



容器治理的域...

當(dāng) Bean 被創(chuàng)建時(shí)可以定義域



中間的屏面可以切換 Bean 類和域---使用這個(gè)功能來定義額外的容器治理的域


模式(Schema)和映射(Map)

模式(Schema)
描述數(shù)據(jù)庫模式
將原始數(shù)據(jù)轉(zhuǎn)換成 java 類型
將 Java 類型轉(zhuǎn)換成原始數(shù)據(jù)
映射(Map)
定義如何從模式中的一行數(shù)據(jù)構(gòu)造對(duì)象
定義如何從一個(gè)對(duì)象構(gòu)造數(shù)據(jù)行



生成數(shù)據(jù)庫模式

添加一個(gè)模式和映射--"EJB > Add > Schema and Map from EJB Group"

導(dǎo)出模式導(dǎo)數(shù)據(jù)庫--打開 Schema Browser


Aside: JDBC

JDBC 驅(qū)動(dòng)程序
描述 Java 和一個(gè)數(shù)據(jù)庫之間的接口
作為一個(gè) Java 類而實(shí)現(xiàn)
一般由數(shù)據(jù)庫廠商提供
JDBC URL
描述數(shù)據(jù)庫位置(如何查找)
部分格式是各廠商定義的
生成庫表

大多數(shù) DBA 嘲笑數(shù)據(jù)庫表的自動(dòng)生成--有個(gè)理由: 高效的庫表設(shè)計(jì)需要精心考慮

生成的庫表足以供測(cè)試使用

CMP 提供了在您的 Bean 和存儲(chǔ)機(jī)制間的屏蔽--在測(cè)試時(shí)使用自動(dòng)生成庫表, 部屬時(shí)另外考慮

"FinderHelper" 類

為每個(gè) finder 方法定義 "where" 語句
"?" 被參數(shù)值替換(按次序)
WebSphere 獨(dú)有
Employee findById(int id) throws ...
Enumeration findAll() ...
Enumeration findByLastLike(String pattern) ...
Enumeration findBySalaryRange(double low, double high) ..


public interface EmployeeBeanFinderHelper {
public static final String findByIdWhereClause = "ID = ?";
public static final String findAllWhereClause = "1 = 1";
public static final String findByLastLikeWhereClause
= "LAST LIKE ?";
public static final String findBySalaryRangeWhereClause
= "SALARY > ? and SALARY < ?";
}



Aside: 設(shè)置 DB2

VAJ 的工作區(qū)必需能夠訪問 DB2 驅(qū)動(dòng)程序--使用 "Window > Options..."


創(chuàng)建一個(gè)數(shù)據(jù)庫

使用 DB2 的控制臺(tái)來構(gòu)建一個(gè)數(shù)據(jù)庫
參考 Smartguide 中的指示
VisualAge 為您自動(dòng)生成庫表

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
伊色综合久久之综合久久| 中国一级大黄大黄大色毛片| 欧美酷刑日本凌虐凌虐| 精品一区二区三区免费| 在线观看黄色av| 国产免费久久久| 92精品国产成人观看免费| 99久久久无码国产精品免费| 欧美视频在线观看| 欧美国产小视频| 最近2019免费中文字幕视频三| 国产亚洲美女精品久久久| 久久久精品视频在线| 色噜噜狠狠一区二区| 一本一道久久a久久精品逆3p| 国产在线看一区| 欧美日韩一级在线观看| 国产日韩另类视频一区| 热久久最新地址| 久久久精品免费看| 国产免费一区二区三区香蕉精| 日韩国产精品久久久久久亚洲| 在线视频cao| 国产一级在线观看www色| 高清av中文在线字幕观看1| 日本成人三级| 久久久久女人精品毛片九一| 老司机午夜精品视频| 美女网站在线观看| 成人污污视频在线观看| 美丽的小蜜桃4春潮| 日韩三级久久久| 黄色激情在线视频| 五月婷婷六月丁香激情| 先锋资源在线视频| 伊人久久大香线蕉综合网蜜芽| 亚洲影视九九影院在线观看| 免费看av成人| 韩国精品久久久| 青娱乐在线视频观看| 久热久精久品这里在线观看| 97最新国自产拍视频在线完整在线看| 国语对白在线播放| 亚洲福利在线播放| 校园春色亚洲| 精品人妻一区二区三区免费| 国产高清在线一区| 欧美tk—视频vk| 91免费看`日韩一区二区| 亚洲一区在线直播| 快灬快灬一下爽蜜桃在线观看| 久久93精品国产91久久综合| 精品伦精品一区二区三区视频密桃| 久久人人爽人人人人片| 亚洲精品国产av| 男女视频网站在线观看| 懂色一区二区三区av片| 激情久久一区| 在线视频观看你懂的| 黑人一区二区| 国产成人亚洲综合a∨婷婷| 色戒汤唯在线| 日本手机在线视频| 亚洲免费电影一区| 欧美精品激情在线观看| 国产福利一区二区三区| 一个人看的www日本高清视频| 国产性生活视频| 国产无遮挡裸体免费久久| 久久精品女人天堂| 巨胸大乳www视频免费观看| 亚洲欧洲国产日本综合| 苍井空浴缸大战猛男120分钟| 久久亚洲精品小早川怜子66| 天天影视网天天综合色在线播放| 国产h视频在线播放| 激情五月综合| 欧美日韩一区小说| 男人操女人免费| 91麻豆桃色免费看| 亚洲第一页在线播放| 美女毛片在线看| 亚洲美女在线一区| 日韩理论片av| 视频一区免费在线观看| 国产伦一区二区三区色一情| 成人精品久久一区二区三区| 欧美黄视频在线观看| 精品国产鲁一鲁一区二区三区| 国产精品网站在线观看| 亚洲a∨一区二区三区| 国产三级欧美三级日产三级99| 波多野结衣先锋影音| 国产一区二区在线观看免费视频| 日本电影亚洲天堂| 国产精品99久久久久久久女警| 制服.丝袜.亚洲.中文.综合懂色| 久久五月天色综合| 国产成人精品一区二区三区四区| 国产精品丝袜91| 中文在线字幕在线观看| 国精产品99永久一区一区| 久久夜色精品亚洲| 国产在线一二三区| 中文字幕毛片| 国产成a人亚洲精v品无码| 国外av在线| 欧美性受黑人性爽| 羞羞色院91蜜桃| 不卡一区2区| 一区二区三区无码高清视频| 中文字幕亚洲免费| 一本色道久久综合熟妇| 97色在线视频观看| 日韩中文不卡| 欧美在线视频日韩| 国产精品一区一区| 欧美一区在线观看视频| 四虎国产精品免费久久5151| 天天操天天爽天天射| 亚洲精品视频播放| 18+视频在线观看| 亚洲av综合色区无码一区爱av| 国产精品露出视频| 成人自拍视频在线观看| 97精品国产99久久久久久免费| 日韩精品在线看片z| 亚洲色图100p| 熟女俱乐部一区二区| 干b视频在线观看| 精品国产乱码久久久久久果冻传媒| 欧美大片国产精品| 一个人看的www视频在线免费观看| 欧美一区二区视频网站| 亚洲精品少妇30p| 强制捆绑调教一区二区| 亚洲精品久久久久久国| 精品亚洲aⅴ在线观看| 日本不卡一区在线| 波多野结衣作品集| 国产日本一区二区三区| 欧美性生活一区| 蜜桃av鲁一鲁一鲁一鲁俄罗斯的| 婷婷色在线观看| 一本色道久久综合亚洲精品酒店| 亚洲精品精品亚洲| 国产视频xxx| 欧美国产日本视频| 国产精品探花一区二区在线观看| 91超碰国产在线| 亚洲精品久久久久久下一站| 97在线免费观看| 精品国产91| 亚洲综合日韩中文字幕v在线| 欧美黑人xxxxx性受| 精品视频在线观看免费观看| 波多野结衣的一区二区三区| 欧美在线导航| 成人欧美一区二区三区| 精品少妇一区二区三区密爱| 免费影视观看网站入口| 97久久精品人搡人人玩| 国严精品久久久久久亚洲影视| 日韩视频网站在线观看| 中文在线日韩| 亚洲欧洲www| 亚洲精品一区二区在线看| 日韩欧美国产wwwww| 国产在线观看第一页| 国产精品久久免费看| 91成人看片| 自拍偷拍视频在线| 久久久久久麻豆| 久热re国产手机在线观看| 18+视频在线观看| 亚洲成人动漫在线观看| 欧美日韩一二三四五区| 国产精品综合视频| 欧美极品videos大乳护士| 六月婷婷综合网| 国产一区二区视频在线观看免费| 成人综合电影| 在线免费91| 久久久久久久久久久久久9999| 久久国产情侣| 97人澡人人添人人爽欧美| 97精品视频| 免费在线看成人av| 成人在线网站| 精品动漫一区二区三区在线观看| 精品丝袜久久| 黄色直播在线| 人妻有码中文字幕| 毛片中文字幕| 欧美在线三级电影| 亚洲乱码在线| 中文成人无字幕乱码精品区| 第九色区av在线| 久久中文欧美| 国产精品一在线观看| 国产日韩免费视频| 神马香蕉久久| 瑟瑟视频在线免费观看| 国产精品一区在线观看你懂的| 你懂的网站在线| 在线免费不卡电影| 九九在线视频| av电影在线观看一区二区三区| 性网站在线观看| 久久久久久一级片| 成人免费看视频网站| 夜夜嗨av一区二区三区免费区| 精品久久91| 91精品丝袜国产高跟在线| 亚洲欧洲日产国产综合网| 免费a级黄色片| 亚洲男人天堂影院| 亚洲福利网站| 亚洲成人网在线播放| 亚洲精品影视在线| 91精品国产高清自在线看超| 免费高潮视频95在线观看网站| 色777狠狠综合秋免鲁丝| 欧美麻豆久久久久久中文| 污视频网站在线看| 99精品桃花视频在线观看| 亚洲国产精品综合小说图片区| 久青草国产97香蕉在线视频| 国产精品嫩草在线观看| 成人听书哪个软件好| 日韩av一区二区在线影视| 欧美日韩成人一区二区三区| 一本色道久久综合亚洲精品不卡| 五月天中文字幕| 欧洲视频一区| 中国特黄一级片| 亚洲免费二区| 欧美3p在线观看| 91沈先生播放一区二区| 久久综合久色欧美综合狠狠| 日韩av大片在线观看| 亚洲欧美日韩国产成人综合一二三区| 国产免费专区| 影音先锋中文字幕在线视频| 日韩亚洲国产欧美| 依依综合在线| 三上悠亚激情av一区二区三区| 亚洲av成人无码网天堂| www成人啪啪18软件| 久草视频在线资源| 欧美日韩在线三区| 久久久久久久爱| 图片一区二区| 东京干手机福利视频| 久久免费的精品国产v∧| 欧美成人69| 日韩精品在线一区| 超碰97人人人人人蜜桃| 三年片大全在线观看大全有哪些| 日韩亚洲精品在线| 国产午夜精品无码| а天堂中文在线官网| jizzjizz.con| 国产成人精品国内自产拍免费看| 国产99视频在线观看| 97久久精品人人爽人人爽蜜臀| 成人性视频欧美一区二区三区| 欧美日韩国产成人精品| 国产福利久久精品| 亚洲精品激情| 国内精品400部情侣激情| www.欧美三级电影.com| 美女视频免费观看网站在线| 日韩欧美视频免费在线观看| 国产精品手机在线观看| www.色多多| 国产真人做爰视频免费| 日本一卡二卡在线播放| 毛片aaaaaa| 午夜精品久久久久久久| 亚洲成人1区2区| www.色小姐com| 国产亚洲一区二区手机在线观看| 久久国产色av| 亚洲成人综合在线| 97在线精品国自产拍中文| 囯产精品一品二区三区| 91在线视频在线| 狠狠色噜噜狠狠狠狠色吗综合| 日本成人免费视频| 欧美精品一区二区免费| 亚洲美女在线看| 国产精品美女久久久久久久久| 精品国产视频| 亚洲国产精彩中文乱码av在线播放| 97色伦亚洲国产| 色域天天综合网| 欧美尺度大的性做爰视频| 亚洲欧美中文另类| 中文字幕在线免费专区| 久久久精品国产一区二区| 青春草国产视频| 国产人成免费视频| 91免费看片| 嫩草影院永久入口| 97精品伊人久久久大香线蕉| 性欧美超级视频| 欧美一区二区在线看| 欧美色18zzzzxxxxx| 尤物视频..com| 欧美性色aⅴ视频一区日韩精品| 久久久久久蜜桃一区二区| 日日噜噜夜夜狠狠久久丁香五月| av网站免费观看| 日本19禁啪啪吃奶大尺度| 清纯唯美亚洲综合一区| 国产乱视频在线观看播放| 成人福利视频网站| 国产深夜精品| 51漫画成人app入口| 日本韩国一区二区| 妖精一区二区三区精品视频| 午夜电影一区二区| 日韩av在线第一页| 欧美美最猛性xxxxxx| 日韩欧美国产精品一区二区三区| 中文日本高清免费| 少妇高潮大叫好爽喷水|