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

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

實體 Bean 和 CMP

2019-11-18 14:27:27
字體:
來源:轉載
供稿:網友

  什么是一個實體(Entity) Bean
一個持久對象
通常它是被當成一樣"東西",或者會長期存在的
BankAccount
Employee
Order
不僅僅只是數據--狀態和行為,與常規對象一樣
數據庫中的實體 Bean
一個實體 bean 直接映射到數據庫中的一行數據

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

根據規范定義,實體 Bean 一旦被創建后就存在
它們被直接寫到數據庫中
可以不受任何服務器的宕機影響
Create 方法必需提供足夠的信息將 Bean 保存到數據庫中
實體 Bean 與 會話 Bean 的區別

實體 Bean
持久對象; 不受服務器宕機影響
有一個主鍵; 可以被搜索到
可以被共享
必需被顯式刪除
會話 Bean
不是持久的; 受服務器宕機影響
不可以被搜索
通常一個用戶使用一個 bean
過一段非活動期后將被自動回收


Aside: 什么是一個主鍵?

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

數據庫: 一組數據集合可以被檢索和查找--一個關系型數據庫維持不同行數據間的關系

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

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

同步訪問的控制

容器治理同步訪問--線程獲得對 Bean 的獨有訪問、即 Bean 的每個方法是 synchronized



警告: 當心死鎖!

Bean 本身也是客戶!
Client 1 有對 Bean 1 的獨有鎖
Client 2 有對 Bean 2 的獨有鎖
Bean 1 必需等待 Client 2 的結束
Bean 2 必需等待 Client 1 的結束
沒有任何一方得到鎖!


實體 Bean 有主鍵

主鍵用來唯一地區別 bean--類似于數據庫主鍵的概念

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

主鍵可能由多個域組成

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



Create 方法

Home 定義了一個或多個 "create" 方法--在創建后,Bean 必需馬上被寫到數據庫

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

對每個 ejbCreate 方法必需有一個 ejbPostCreate--有相同的參數

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



Finder 方法

Bean home 接口定義了 "ejbFind" 方法---通過 VAJ 的 Persistence Lay, 容器提供一個實現

方法將返回:---單個結果的 Remote 接口、多個結果的 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 的生命周期--何時創建、載入、存儲和刪除
容器提供存儲機制--如何創建、載入、存儲和刪除
Bean 部屬人員定義 Bean 和數據庫之間的映射
VisualAge 和 CMP

VisualAge 提供工具來:
從一個數據庫模式(schema)來創建 Bean
從實體 Bean來創建數據庫模式
Meet in the middle: 利用現有的 Bean 和模式
構建一個實體 Bean



容器治理的域...

當 Bean 被創建時可以定義域



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


模式(Schema)和映射(Map)

模式(Schema)
描述數據庫模式
將原始數據轉換成 java 類型
將 Java 類型轉換成原始數據
映射(Map)
定義如何從模式中的一行數據構造對象
定義如何從一個對象構造數據行



生成數據庫模式

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

導出模式導數據庫--打開 Schema Browser


Aside: JDBC

JDBC 驅動程序
描述 Java 和一個數據庫之間的接口
作為一個 Java 類而實現
一般由數據庫廠商提供
JDBC URL
描述數據庫位置(如何查找)
部分格式是各廠商定義的
生成庫表

大多數 DBA 嘲笑數據庫表的自動生成--有個理由: 高效的庫表設計需要精心考慮

生成的庫表足以供測試使用

CMP 提供了在您的 Bean 和存儲機制間的屏蔽--在測試時使用自動生成庫表, 部屬時另外考慮

"FinderHelper" 類

為每個 finder 方法定義 "where" 語句
"?" 被參數值替換(按次序)
WebSphere 獨有
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: 設置 DB2

VAJ 的工作區必需能夠訪問 DB2 驅動程序--使用 "Window > Options..."


創建一個數據庫

使用 DB2 的控制臺來構建一個數據庫
參考 Smartguide 中的指示
VisualAge 為您自動生成庫表

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
成人h视频在线观看播放| 日韩中文字幕在线视频| 97成人精品视频在线观看| 国产精品入口夜色视频大尺度| 日韩电影视频免费| 国产成人精彩在线视频九色| 亚洲第一网站男人都懂| 欧美日韩亚洲精品一区二区三区| 欧美国产高跟鞋裸体秀xxxhd| 国产精品久久不能| 亚洲精品第一页| 精品久久久视频| 亚洲女人初尝黑人巨大| 九九热精品视频在线播放| 亚洲综合大片69999| 日韩av一区在线| 亚洲黄色有码视频| 国产欧美精品在线| 亚洲视频国产视频| 亚洲尤物视频网| 一区二区欧美久久| 日本欧美在线视频| 亚洲va久久久噜噜噜久久天堂| 久久精品电影一区二区| 欧美大片在线看| 91美女福利视频高清| 国产日韩欧美在线看| 92国产精品久久久久首页| 亚洲午夜未删减在线观看| 久久五月情影视| 午夜伦理精品一区| 日韩av手机在线观看| 亚洲国产精彩中文乱码av在线播放| 在线电影欧美日韩一区二区私密| 国产精品成人观看视频国产奇米| 91精品国产免费久久久久久| 欧美有码在线观看视频| 国产精品久久久久久久久久久久| 亚洲精品丝袜日韩| 国产精品免费久久久| 欧美肥老太性生活视频| 国产成人精品av| 欧美色另类天堂2015| 精品综合久久久久久97| 国语自产偷拍精品视频偷| 97色在线观看| 91在线观看免费高清完整版在线观看| 欧美一级淫片videoshd| 国产有码在线一区二区视频| 91国内揄拍国内精品对白| 亚洲午夜未满十八勿入免费观看全集| 97涩涩爰在线观看亚洲| 久久精品国产久精国产一老狼| 国产精品久久久久久网站| 欧美老女人性视频| 亚洲乱码国产乱码精品精天堂| 日韩精品免费在线播放| 欧美一区亚洲一区| 日韩电视剧免费观看网站| 欧美精品手机在线| 亚洲天堂网站在线观看视频| 国产ts一区二区| 中文字幕av一区| 热re91久久精品国99热蜜臀| 91国内产香蕉| 91香蕉亚洲精品| 国产精品成熟老女人| 亚洲成人免费在线视频| 性金发美女69hd大尺寸| 国内外成人免费激情在线视频网站| 尤物精品国产第一福利三区| 一本大道亚洲视频| 一个人看的www欧美| 久久久亚洲国产天美传媒修理工| 91久久夜色精品国产网站| 欧美中在线观看| 国产综合香蕉五月婷在线| 91中文精品字幕在线视频| 成人a视频在线观看| 日韩网站免费观看高清| 欧美精品videos另类日本| 亚洲成人中文字幕| 欧美福利小视频| 中文字幕日韩在线视频| 亚洲va国产va天堂va久久| 国产又爽又黄的激情精品视频| 日韩欧美亚洲综合| 欧美丝袜一区二区| 亚洲精品白浆高清久久久久久| 国产精品久久久久久一区二区| 国产亚洲欧美日韩一区二区| 欧美夫妻性生活视频| 亚洲性猛交xxxxwww| 性夜试看影院91社区| 日韩乱码在线视频| 久久免费视频网| 国产精品第一页在线| 欧美精品国产精品日韩精品| 国产欧美日韩最新| 中文欧美在线视频| 亚洲已满18点击进入在线看片| 色偷偷偷综合中文字幕;dd| 国产一区二区三区毛片| 国产婷婷97碰碰久久人人蜜臀| 中文字幕在线看视频国产欧美在线看完整| 色偷偷噜噜噜亚洲男人的天堂| 成人免费在线视频网址| 欧美视频在线免费看| 综合网日日天干夜夜久久| 91av在线影院| 亚洲人成欧美中文字幕| 精品一区二区亚洲| 日韩精品日韩在线观看| 插插插亚洲综合网| 91精品国产一区| 亚洲人成在线一二| 国产精品久久av| 欧亚精品在线观看| 日韩在线中文字幕| 一区二区三区高清国产| 亚洲男人天堂2024| 成人h猎奇视频网站| 5566成人精品视频免费| 中文字幕国产亚洲2019| 亚洲一区亚洲二区| 国产精品一区电影| 久久97精品久久久久久久不卡| 亚洲美女性视频| 亚洲美腿欧美激情另类| 国产精品久久久久久久电影| 亚洲自拍欧美另类| 色婷婷综合久久久久| 亚洲福利在线视频| 欧美成人一二三| 亚洲国产另类 国产精品国产免费| 色偷偷av一区二区三区| 欧日韩在线观看| 国产日韩在线亚洲字幕中文| 国产精品久久97| 亚洲午夜未删减在线观看| 成人福利视频网| 亚洲欧美另类国产| 91精品国产91久久久久| 久久国产精彩视频| 成人久久久久爱| 这里只有视频精品| 国产日韩在线看片| 一区二区欧美激情| 日韩欧美在线观看视频| 国产亚洲欧美视频| 日韩在线免费观看视频| 日韩三级影视基地| 欧美又大又硬又粗bbbbb| 久久69精品久久久久久国产越南| 久久久伊人日本| 日本一区二区在线播放| 亚洲精品98久久久久久中文字幕| 色婷婷综合久久久久| 欧美激情区在线播放| 精品亚洲国产成av人片传媒| 中文字幕日韩免费视频| 国产精品中文久久久久久久| 福利一区视频在线观看| 亚洲精品日韩欧美|