码迷,mamicode.com
首页 > 系统相关 > 详细

Eclipse + Jboss AS 7.1 创建 EJB3.0之JPA工程

时间:2016-04-05 13:54:23      阅读:374      评论:0      收藏:0      [点我收藏+]

标签:

 

 

Eclipse + Jboss AS 7.1 创建 EJB3.0之JPA工程

0. EJB3.0 与 JPA

EJB3.0是一份规范,该规范由不同的部分组成:

  • 第一部分为session bean和message-driven bean定义了新的编程模型,以及部署规则等等;
  • 第二部分专门定义了持久化相关的规范:实体,对象/关系映射元数据,持久化管理接口和查询语言。

第二部分就是我们所说的JPA(Java Persistence API),之所以取名叫JPA,很有可能是因为持久化的接口位于javax.persistence.

1. 环境预备


  • JDK 6 (Java SE 6)
  • EJB 3.0 (stateless session bean)
  • EJB 3.0 Java Persistence API (JPA)
  • Eclipse Indigo IDE for Java EE Developers (3.7.1)
  • JBoss Tools – Core 3.3.0 M5 for Eclipse Indigo (3.7.1)
  • JBoss Application Server (AS) 7.1.0.CR1b / Final
  • MySQL 5.5 (To install MySQL refer this page)
  • MySQL Connector/J 5.1

2. 配置开发环境


参考此链接下载和安装开发环境,并在Jboss应用服务器上部署EJB3.0.

3. 工程描述


  • 我们将创建一个简单的EJB 3 JPA project和一个remote Java application client
  • 我们会创建一个JPA实体,并通过一个stateless session bean在这个实体上执行某些操作。
  • 为了测试这个JPA示例程序,我们会写一个Java Application Client (main() method).
  • 为了简单起见,我们将entity, session bean 和 client放在同一个工程中。

技术分享

4. 步骤


  1. 创建数据库表
  2. 创建JPA实体
    • 带有@Entity注解的普通Java Bean类
    • “persistence.xml”
    • 【可选】“orm.xml”(如果你选择在“XML”中定义对象-关系表映射)
  3. 创建Stateless Session Bean
    • Bean接口
    • Bean的实现类
  4. 创建Client
    • 带有静态main()方法的Client类
    • jboss-ejb-client.properties(定义JBoss AS7特有的client环境)
    • JAR包(for accessing Session Bean)
    • MySQL连接器需要的JAR包
  5. 在JBoss AS7中添加MySQL数据源

5. 在MySQL中创建数据库表


JPA定义了整套数据持久化规范,让我们来看看它是如何在数据存储模式下工作的。假设你已有一个project表,如下所示。

FieldTypeKeyExtra
pname varchar(255)    
pnumber int Primary Key auto_increment
plocation varchar(255)    
dept_no    
  • 此表位于jpadb的database中
  • 如何在MySQL中创建“database”和“table”,网上教程很多,这里不在讲解

示例程序:

  1. 在ubuntu环境下启动Mysql服务并登陆
    sudo service mysql start
    mysql -u [name] -p
    [password]
    
  2. 新建“database”和“table”
    create database jpadb;
    use jpadb;
    CREATE TABLE project (
     pname varchar(255),
     pnumber int PRIMARY KEY AUTO_INCREMENT,
     plocation varchar(255),
     dept_no int
    );
    
    技术分享

6. 新建 EJB Project

  • 打开Eclipse IDE,按照以下三步创建一个新的EJB工程:

    技术分享

  • 输入工程名FirstJPAProject,并按下图选择Runtine和module:

    技术分享

  • 单击“Next” -> “Next” -> “Finish”.

  • Project Explore 视图中的工程结构如下:
    技术分享

7. 创建JPA实体

在这个简单的示例中,我们只有一个“Project”实体,它是一个不含业务逻辑的java简单对象。这个类可以不用做任何改变运行在Java SE和Java EE环境。在这个示例中,我们使用在Java EE环境中。
我们将ejbModule -> New -> Class

  • 输入包名com.ibytecode.entities
  • 输入类名Project
  • 点击Finish

复制下面的代码

技术分享
 1 package com.ibytecode.entities;
 2  
 3 import java.io.Serializable;
 4 import javax.persistence.Entity;
 5 import javax.persistence.Id;
 6 import javax.persistence.Column;
 7  
 8 @Entity(name = "project")
 9 public class Project implements Serializable {
10     private static final long serialVersionUID = 1L;
11  
12     public Project() {
13         super();
14     }
15     
16     @Id
17     private int pnumber;
18     private String pname;
19     private String plocation;
20  
21     @Column(name = "dept_no")
22     private int deptNo;
23  
24     public int getPnumber() {
25         return pnumber;
26     }
27     public void setPnumber(int pnumber) {
28         this.pnumber = pnumber;
29     }
30     public String getPname() {
31         return pname;
32     }
33     public void setPname(String pname) {
34         this.pname = pname;
35     }
36     public String getPlocation() {
37         return plocation;
38     }
39     public void setPlocation(String plocation) {
40         this.plocation = plocation;
41     }
42     public int getDeptNo() {
43         return deptNo;
44     }
45     public void setDeptNo(int deptNo) {
46         this.deptNo = deptNo;
47     }
48     @Override
49     public String toString() {
50         return "Project [pnumber=" + pnumber + ", pname=" + pname
51                 + ", plocation=" + plocation + ", deptNo=" + deptNo + "]";
52     }
53 }
View Code

 

Eclipse + Jboss AS 7.1 创建 EJB3.0之JPA工程

标签:

原文地址:http://www.cnblogs.com/wcb-xtu/p/5354647.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!