1、实体bean基础知识
实体bean——EJB规范将实体bean规定为持久的、事务性的和共享的组件,这样业务数据可以有多个客户端同时使用并长久存储,直到被显式删除。
2、实体bean组件
实体bean由home接口、组件接口(本地或者远程的)、bean类、主键类和部署描述文件组成。
1)home接口
提供允许本地或者远程客户端查找创建删除实体bean的示例的方法。本地home接口可扩展javax.ejb.EJBLocalHome并包含create、remove、finder和home方法;远程接口可以扩展javax.ejb.EBJHome并包含create、remove和查找程序。
实体bean的create方法可以在bean类调用相应的ejbCreate方法,负责在受支持持久存储中创建一个bean示例,对应数据库的插入操作。
实体bean的home接口必须定义一个将主键作为参数的remove方法,该方法使用持久性存储的相应主键来删除实体bean示例,对应数据库的删除操作。
2)主键和标识
每一个实体bean引用都与特定的主键关联,针对引用执行的调用会被调度带到同一主键的bean示例
3)钝化与激活
在实体bean中,当实体bean实例与特特定主键关联时,调用ejbActivate;当关联被删除并且实体bean实例已经没有特定标识才调用ejbPassivate方法
4)home方法与业务方法
3、CMP实体bean实例
//CMP演示:StudentBean,该bean包括三个容器管理字段的get、set方法
import javax.ejb.*;
public abstract class StudentCMPBean implments EntityBean{
private EntityContext ctx;
//容器管理字段
public abstract String getName();
public abstract void setName(String string);
public abstract Integer getSSN();
public abstract void setSSN(Integer ssn);
public abstract int getGrade();
public abstract void setGrade(int grade);
public void setEntityContext(EntityContext c){
ctx=c;
}
public void unsetEntityContext(EntityContext c){
ctx=null;
}
public Integer ejbCreate(String name,Integer ssn,int grade){
setName(name);
setSSN(ssn);
setGrade(grade);
return null;
}
public Integer ejbCreate(String name,Integer ssn,int grade){}
public void ejbRemove(){}
public void ejbLoad(){}
public void ejbStore(){}
public void ejbActivate(){}
public void ejbPassivate(){}
}