- 1、本文档共25页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
18 EJB3.0_实体Bean
第18章
EJB3.0:实体 Bean
本课教学内容
实体Bean和ORMapping
编写实体Bean
利用会话Bean操作实体Bean
复杂查询
实体 Bean 和 ORMapping
对象和关系的映射
实体 Bean 和 ORMapping
在 ORMapping 中,Java 对象可称为 PO,一个 PO 对象,一般表示数据表中的一条记录,只是对这个记录的操作可以简化成对这个 Bean 对象的操作,操作之后数据库中的记录相应变化
编写实体 Bean
实体 Bean 的使用,一般需要被部署到 WebLogic 中,并和数据源绑定,因此,首先在WebLogic 中创建一个数据源,JNDI 名称为 DSSchool,连接到该 Oracle 数据库
按照 JavaBean 格式编写 PO
实体 Bean 不需要编写任何接口,只编写一个 Bean 类即可,目录图如下
在 Student 类中添加注释
一个简单的 JavaBean,还不能称之为一个实体 Bean,因此,必须对其进行配置,使得其建立和表的映射。过程为:
由于 Student 可能被远程调用并返回,因此实现 java.io. Serializable 接口
public class Student implements Serializable{
}
在 Student 类中添加注释
在类定义之前,用@Entity声明该类是一个实体 Bean,并用@Table指定映射的表名称
@Entity
@Table (name=T_STUDENT)
public class Student implements Serializable
}
在 Student 类中添加注释
由于实体 Bean 放在内存中被访问时,主键是唯一标识,因此,在主键列对应的属性前,用@Id指定其是主键,用@GeneratedValue指定主键生成方式
在 Student 类中添加注释
主键生成方式有多种,这里选用的是 GenerationType.AUTO。常见的主键生成方式,分别解释如下:
GenerationType.TABLE:容器指定用底层的数据表确保唯一
在 Student 类中添加注释
GenerationType.SEQUENCE:使用数据库的 SEQUENCE 列来保证唯一,但是数据库必须支持 SEQUENCE
GenerationType.IDENTITY:使用数据库的 INDENTIT 列来保证唯一。但是数据库必须支持 IDENTITY
GenerationType.AUTO:由容器挑选一个合适的方式来保证唯一
编写配置文件
通过上面的编写,此实体 Bean 只是和表以及表中的列建立了对应关系,但是,该 Bean需要和数据库进行操作,因此,还需要对数据源进行配置。在 EJB3.0 中,配置数据源的工作,一般是用配置文件 persistence.xml 确定的
编写配置文件
项目结构如图
编写配置文件
persistence.xml 中主要是确定如下几个内容
外界访问该数据源时的 persistence-unit 名称
该持久化单元绑定的 WebLogic 数据源的 JNDI 名称
利用会话 Bean 操作实体 Bean
实体 Bean 的调用
利用会话 Bean 操作实体 Bean
实体 Bean 在其生命周期中,有好几个状态,最常见的是如下两个:
游离(detached)状态:该实体 Bean 已经建立,但是没有和上下文环境发生联系
托管(managed)状态:该实体 Bean 已经建立,已经和上下文环境发生联系
利用会话 Bean 操作实体 Bean
EntityManager 进行实体 Bean 操作的函数有如下几个:
EntityManager.find(Class,Object):传入一个实体 Bean 类型,以及主键,返回相应的Bean 对象。在服务器内调用该函数,返回的 Bean 处于托管状态
利用会话 Bean 操作实体 Bean
EntityManager.persist(Object obj):传入一个实体 Bean 对象,将其数据保存在数据库。注意,默认情况下,此传入的实体 Bean 一定要处于托管状态,否则该函数抛出异常
利用会话 Bean 操作实体 Bean
EntityManager.merge(Object obj):传入一个实体 Bean 对象,将其内容更新到数据库。调用该函数之后,该实体 Bean 自动处于托管状态
EntityManager.remove(Object obj):传入一个实体 Bean 对象,将其从数据库中删除
编写会话 Bean 的远程接口
具体代码示例见课本
编写会话
您可能关注的文档
- 14钢铁是这样炼成的.ppt
- 15 创建 更改 删除帐户.ppt
- 15 这片土地是神圣的 (wjl)1.ppt
- 15 事业单位年终清帐与结账.ppt
- 15 句子润色:简单句合并成复合句.ppt
- 15 宁为战死鬼,不做亡国奴.ppt
- 15 怎样走好做新员工?.ppt
- 15-02_平面简谐波的波函数.ppt
- 15-04天净沙秋思_YH.ppt
- 15-(4-5)圆孔衍射 光学仪器的分辨率.ppt
- PDM软件:Siemens Teamcenter二次开发_(17).Teamcenter最佳实践与案例分析.docx
- SCADA软件:GE Proficy二次开发_(4).Proficy开发环境搭建.docx
- 智能电表软件:Landis+Gyr智能电表二次开发_(13).系统集成与测试.docx
- 智能电表软件:Elster智能电表二次开发_(8).Elster智能电表二次开发环境搭建.docx
- PDM软件:Siemens Teamcenter二次开发_(11).TeamcenterAPI与编程基础.docx
- SCADA软件:GE Proficy二次开发_(7).报警与事件管理.docx
- 智能电表软件:Echelon智能电表二次开发_(11).智能电表行业标准与法规.docx
- 智能电表软件:Itron智能电表二次开发_(6).用户界面定制与开发.docx
- 智能电表软件:Elster智能电表二次开发_(9).Elster智能电表二次开发工具使用.docx
- PDM软件:PTC Windchill二次开发_(21).Windchill最佳实践案例分析.docx
文档评论(0)