lucas jellema 最近写了篇文章,名字叫:getting started with ejb 3.0 persistence out-of-container using the reference implementation (glassfish)。
该文介绍了如何在j2ee container之外使用ejb 3.0 persistence,实现了service类和data model.
lucas jellema提到的步骤如下:
1.下载和安装 java 5 (jdk 5.0/jre 5.0)
2.下载和配置 glassfish
glassfish:https://glassfish.dev.java.net/
3.创建entities - pojos with annotations that link them to database objects
比如其中的员工类:
package nl.amis.ejb30.hrm;4.创建 persistence.xml file 用来连接 entities (或者 domain classes 和 pojos) 和 database
import java.io.serializable;
import java.sql.timestamp;
import javax.persistence.column;
import javax.persistence.entity;
import javax.persistence.id;
import javax.persistence.table;
@entity
@table(name="emp")
public class employee implements serializable {
private double comm;
private long deptno;
private long empno;
private string ename;
private timestamp hiredate;
private string job;
private long mgr;
private double sal;
public employee() {
}
public employee(long empno) {
this.empno = empno;
}
@column(name="comm")
public double getcomm() {
return comm;
}
public void setcomm(double comm) {
this.comm = comm;
}
@column(name="deptno")
public long getdeptno() {
return deptno;
}
public void setdeptno(long deptno) {
this.deptno = deptno;
}
@id
@column(name="empno", nullable=false)
public long getempno() {
return empno;
}
public void setempno(long empno) {
this.empno = empno;
}
@column(name="ename")
public string getename() {
return ename;
}
public void setename(string ename) {
this.ename = ename;
}
@column(name="hiredate")
public timestamp gethiredate() {
return hiredate;
}
public void sethiredate(timestamp hiredate) {
this.hiredate = hiredate;
}
@column(name="job")
public string getjob() {
return job;
}
public void setjob(string job) {
this.job = job;
}
@column(name="mgr")
public long getmgr() {
return mgr;
}
public void setmgr(long mgr) {
this.mgr = mgr;
}
@column(name="sal")
public double getsal() {
return sal;
}
public void setsal(double sal) {
this.sal = sal;
}
}
<persistence xmlns="http://java.sun.com/xml/ns/persistence">
<persistence-unit name="pu1">
<!?c provider class name is required in java se ?c>
<provider>oracle.toplink.essentials.ejb.cmp3.entitymanagerfactoryprovider</provider>
<!?c all persistence classes must be listed ?c>
<class>nl.amis.ejb30.hrm.department</class>
<class>nl.amis.ejb30.hrm.employee</class>
<properties>
<!?c provider-specific connection properties ?c>
<property name="jdbc.driver" value="oracle.jdbc.driver.oracledriver"/>
<property name="jdbc.connection.string" value="jdbc:oracle:thin:@localhost:1521:orcl"/>
<property name="jdbc.user" value="scott"/>
<property name="jdbc.password" value="tiger"/>
<!?c provider-specific settings ?c>
<property name="toplink.logging.level" value="info"/>
</properties>
</persistence-unit>
</persistence>
5.创建一个 business service class ,提供 entitiy services (好像一个out-of-container的session bean)
6.创建一个客户端
7.可以运行程序了
最后的包结构如下:

你体验过ejb3吗?发表下感想吧。
闽公网安备 35060202000074号