-
-
- 0. EJB3.0 与 JPA
0 - 1. 环境预备
1 - 2. 配置开发环境
2 - 3. 工程描述
3 - 4. 步骤
4 - 5. 在MySQL中创建数据库表
5 - 6. 新建 EJB Project
6 - 7. 创建JPA实体
7
- 0. EJB3.0 与 JPA
-
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. 步骤
- 创建数据库表
- 创建JPA实体
- 带有
@Entity
注解的普通Java Bean类 - “persistence.xml”
- 【可选】“orm.xml”(如果你选择在“XML”中定义
对象-关系表
映射)
- 带有
- 创建Stateless Session Bean
- Bean接口
- Bean的实现类
- 创建Client
- 带有静态main()方法的Client类
- jboss-ejb-client.properties(定义JBoss AS7特有的client环境)
- JAR包(for accessing Session Bean)
- MySQL连接器需要的JAR包
- 在JBoss AS7中添加MySQL数据源
5. 在MySQL中创建数据库表
JPA定义了整套数据持久化规范,让我们来看看它是如何在数据存储模式下工作的。假设你已有一个project表,如下所示。
Field | Type | Key | Extra |
---|---|---|---|
pname | varchar(255) | ||
pnumber | int | Primary Key | auto_increment |
plocation | varchar(255) | ||
dept_no |
- 此表位于
jpadb
的database中 - 如何在MySQL中创建“database”和“table”,网上教程很多,这里不在讲解
示例程序:
- 在ubuntu环境下启动Mysql服务并登陆
sudo service mysql start mysql -u [name] -p [password]
- 新建“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 }
时间: 2024-10-11 03:40:09