EJB30总结文档.doc_第1页
EJB30总结文档.doc_第2页
EJB30总结文档.doc_第3页
EJB30总结文档.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

EJB3.0总结一、 EJB容器(常用)i. JBoss ii. Weblogic 二、 JBOSS安装a. 从官网下载服务器软件b. 配置JDK环境变量c. 配置JBOSS的安装目录三、 Session Bean(用户处理业务逻辑)1.分类:有状态(Stateful)、无状态(Stateless)2.接口分类:远程接口(Remote)、本地接口(Local)3.创建Session Beana.创建接口(本地、远程)b.创建Session Bean的类,此类需要实现接口4.举例:1.创建接口package com.ejb.session;import javax.ejb.Remote;import com.ejb.entity.Person;Remotepublic interface PersonDAORemote void save(Person person);2.创建Session Bean类package com.ejb.session;import javax.ejb.Stateless;import javax.persistence.EntityManager;import javax.persistence.PersistenceContext;import com.ejb.entity.Person;Statelesspublic class PersonDAO implements PersonDAORemote PersistenceContextprivate EntityManager em;public void save(Person person) em.persist(person);3.使用:/通过perties配置文件,初始化上下文InitialContext itc=new InitialContext();/在上下文中查询bean对象PersonDAORemote personDao=(PersonDAORemote)itc.lookup(PersonDAO/remote);Person person=new Person();person.setName(racky);personDao.save(person);有状态和无状态会话Bean的区别:有状态会话Bean:一个有状态会话Bean实例在某一时刻只能被一个用户独占。例如,开发购物车。(使用激活机制)无状态会话Bean:可以被多个用户共享(使用的实例池机制)例:省略。四、 实体Bean(作为持久化的对象,用于关联程序中对象和数据库表之间的关系)1. 创建实体Bean类package com.ejb.entity;import java.io.Serializable;import javax.persistence.CascadeType;import javax.persistence.Entity;import javax.persistence.FetchType;import javax.persistence.GeneratedValue;import javax.persistence.GenerationType;import javax.persistence.Id;import javax.persistence.OneToOne;/除去未添加序列化ID的警告SuppressWarnings(serial)/用于标识此类是一个实体BeanEntitypublic class Person implements Serializable IdGeneratedValue(strategy = GenerationType.AUTO)private Integer id;private String name;OneToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = person, optional = true)private IdCard idCard;2.Column注解:给类的属性创建数据库表中对映的列名,并且添加相关约束规则。3.ID注解:创建实体Bean的主键4.GeneratedValue(strategy = GenerationType.AUTO)注解:用于指定主键生成策略GenerationType.AUTO: 根据底层数据库的能力自动选择主键生成方式属性值 描述 TABLE 容器指定用底层的数据表确保唯一 SEQUENCE 使用数据库的SEQUENCE 列来保证唯一 IDENTITY 使用数据库的INDENTIT列来保证唯一 AUTO 由容器挑选一个合适的方式来保证唯一 NONE 容器不负责主键的生成,由调用程序来完成 5.映射关系(要么都写在getXxx方法上,要么都写在类的属性上)a.一对一映射(OnetoOne)举例:1.OneToOne(optional = true, cascade = CascadeType.ALL, mappedBy = person)optional的值如果取为false,则所关联的对象属性不可以为null,如果取值为true,则所关联的对象属性可以为nullcascade用指定级联方式mappedBy用于指被维护端的实体属性2.JoinColumn(name = Person_ID, referencedColumnName = personid, unique = true)用于指定关联的列名Name:用于指定列名 referencedColumnName:用于指定引用另外一个对象的属性(列)名称unique:用于添加唯一约束关系b.一对多映射(OnetoMany)要在一的端添加一个集合举例:一的一端:OneToMany(mappedBy = group, cascade = CascadeType.ALL, fetch = FetchType.LAZY)fetch:设置检索策略(FetchType.LAZY(延迟检索), FetchType.EAGER(立即检索))OrderBy(value = id ASC)用于指定排序方式多的一端:ManyToOne(optional = false, cascade = CascadeType.ALL)JoinColumn(name = groupid)b.多对多映射(ManytoMany)一端:ManyToMany(mappedBy = students, cascade = CascadeType.ALL)另外一端:ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)JoinTable(name = Course_Student, joinColumns = JoinColumn(name = courseid, referencedColumnName = id) , inverseJoinColumns = JoinColumn(name = studentid, reference

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论