实体 Bean 和 CMP - 编程入门网
实体 Bean 和 CMP时间:2008-05-07什么是一个实体(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() 方法 主键可能由多个域组成
实体 Bean 和 CMP(2)时间:2008-05-07Post-Create 对每个 ejbCreate 方法必需有一个 ejbPostCreate--有相同的参数 容器将: 调用 ejbCreate(...) 方法, 它将返回所创建实体的一个主键 创建对应该主键的一个 EJB 对象引用 调用 ejbPostCreate(...) 方法通知实例来完全初始化它本身
Finder 方法 Bean home 接口定义了 "ejbFind" 方法---通过 VAJ 的 Persistence Lay, 容器提供一个实现 方法将返回:---单个结果的 Remote 接口、多个结果的 Enumeration
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |