服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

在容器外使用ejb 3.0 persistence

  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;

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;
    }
}
  4.创建 persistence.xml file 用来连接 entities (或者 domain classes 和 pojos) 和 database

<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.可以运行程序了

  最后的包结构如下:

在容器外使用ejb 3.0 persistence

  你体验过ejb3吗?发表下感想吧。

扫描关注微信公众号