`
javaEEdevelop
  • 浏览: 876133 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

EJB实体bean开发

 
阅读更多

开发步骤

1.编写Person.java实体类

2.开发PersonService.java接口类

3.开发PersonServiceBean.java实现类

4.发布EntityBean.jar文件到jboss-4.2.3.GA-jdk6\jboss-4.2.3.GA\server\default\deploy\下

发布的文件只有Person.java、PersonService.java、PersonServiceBean.java、METH-INF/persistence.xml、jndi.properties等文件

5.编写mysql-ds.xml数据源文件,部署到jboss-4.2.3.GA-jdk6\jboss-4.2.3.GA\server\default\deploy\下

6.复制mysql-connector-java-5.1.8-bin.jar文件到jboss-4.2.3.GA-jdk6\jboss-4.2.3.GA\server\default\lib\下

7.编写juit的PersonServiceTest.java测试类

 

Person.java

package cn.cmcc.bean;

 

import java.io.Serializable;

 

import javax.persistence.Column;

import javax.persistence.Entity;

import javax.persistence.GeneratedValue;

import javax.persistence.GenerationType;

import javax.persistence.Id;

import javax.persistence.Table;

 

@Entity

@Table(name="person")

public class Person implements Serializable{

 

private static final long serialVersionUID = 7907974948739540719L;

 

@Id @Column(name="id") @GeneratedValue(strategy=GenerationType.AUTO)

private Integer id;

@Column(name="name",length=20,nullable=false)  

private String name;

 

public Person(){}

 

public Person(String name){

this.name=name;

 

}

public Integer getId() {

return id;

}

public void setId(Integer id) {

this.id = id;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

@Override

public int hashCode() {

final int prime = 31;

int result = 1;

result = prime * result + ((id == null) ? 0 : id.hashCode());

return result;

}

@Override

public boolean equals(Object obj) {

if (this == obj)

return true;

if (obj == null)

return false;

if (getClass() != obj.getClass())

return false;

Person other = (Person) obj;

if (id == null) {

if (other.id != null)

return false;

} else if (!id.equals(other.id))

return false;

return true;

}

 

 

}

 

 

PersonService.java

package cn.cmcc.service;

 

import java.util.List;

 

import cn.cmcc.bean.Person;

 

public interface PersonService {

 

public void sava(Person person);

public void delete(Integer personId);

public void update(Person person);

public Person getPerson(Integer id);

public List<Person> persons();

}

 

 

PersonServiceBean.java

package cn.cmcc.service.impl;

 

import java.util.List;

 

import javax.ejb.Remote;

import javax.ejb.Stateless;

import javax.persistence.EntityManager;

import javax.persistence.PersistenceContext;

 

import cn.cmcc.bean.Person;

import cn.cmcc.service.PersonService;

 

@Stateless

@Remote

public class PersonServiceBean implements PersonService {

//会自动去classes/META-INF下读取persistence.xml,当persistence.xml中有多个unit时,需要指定PersistenceContext 中unitName属性的值

    @PersistenceContext EntityManager em;

    

@Override

public void delete(Integer personId) {

em.remove(em.getReference(Person.class, personId));

 

}

 

@Override

public Person getPerson(Integer id) {

return em.find(Person.class, id);

}

 

@SuppressWarnings("unchecked")

@Override

public List<Person> persons() {

 

return em.createQuery("select o from Person o ").getResultList();

}

 

@Override

public void sava(Person person) {

em.persist(person);

}

 

@Override

public void update(Person person) {

em.merge(person);

}

 

}

 

 

persistence.xml

<?xml version="1.0"?>

<persistence xmlns="http://java.sun.com/xml/ns/persistence"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"

version="1.0">

 

<persistence-unit name="cmcc" transaction-type="JTA">

<jta-data-source>java:cmcc</jta-data-source>

<properties>

<property name="hibernate.hbm2ddl.auto" value="update" />

<!-- 显示最终执行的SQL -->

<property name="hibernate.show_sql" value="true" />

<!-- 格式化显示的SQL -->

<property name="hibernate.format_sql" value="true" />

</properties>

</persistence-unit>

 

 

</persistence>

 

 

 

jndi.properties

java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory

java.naming.provider.url=localhost:1099

 

 

PersonServiceTest.java

package junti.test;

 

 

import javax.naming.InitialContext;

 

import org.junit.BeforeClass;

import org.junit.Test;

 

import cn.cmcc.bean.Person;

import cn.cmcc.service.PersonService;

 

public class PersonServiceTest {

 

private static PersonService personService;

@BeforeClass

public static void setUpBeforeClass() throws Exception {

 

try {

InitialContext ctx = new InitialContext();

personService=(PersonService)ctx.lookup("PersonServiceBean/remote");

} catch (Exception e) {

 

e.printStackTrace();

}

 

}

 

@Test

public void testSava() {

personService.sava(new Person("春"));

}

 

@Test

public void testDelete() {

personService.delete(1);

}

 

@Test

public void testUpdate() {

Person person=personService.getPerson(1);

person.setName("chun");

personService.update(person);

}

 

@Test

public void testGetPerson() {

personService.getPerson(1);

}

 

@Test

public void testPersons() {

personService.persons();

}

 

}

 

 

分享到:
评论

相关推荐

    ejb实体bean实例

    本篇文章将深入探讨EJB实体Bean的概念、其在Eclipse集成开发环境中的使用,以及与MySQL数据库的集成。 ### 一、EJB实体Bean概述 EJB实体Bean是Java EE应用服务器管理的对象,它们负责处理数据存储和检索。实体Bean...

    Ejb开发实体bean

    在这个"购物车"案例中,我们将会探讨如何使用EJB来开发一个简单的实体Bean,以及与之交互的Web前端。 1. **EJB概述**:EJB是Java EE平台的一部分,它提供了一种标准的方式来创建分布式的企业级应用。EJB容器管理着...

    EJB实体Bean与事物管理

    **EJB实体Bean与事务管理** 企业级JavaBean(Enterprise JavaBeans,简称EJB)是Java平台上的一个核心组件,用于构建可部署在服务器端的分布式应用程序。在EJB规范中,实体Bean(Entity Bean)是一种特殊类型的组件...

    EJB实体Bean学习

    总之,EJB实体Bean是Java EE开发中的重要概念,它简化了服务器端应用程序的数据访问层。无论选择BMP还是CMP,了解其工作方式和如何进行CRUD操作都是成为熟练Java EE开发者的关键。在实际项目中,根据需求和团队能力...

    Jboss下开发ejb应用之一实体bean的应用

    首先,理解EJB实体Bean的含义至关重要。实体Bean代表持久化的业务对象,它们与数据库中的记录相对应,负责存储和检索数据。EJB 3.0引入了注解驱动的开发方式,大大简化了实体Bean的编程模型,使得开发者不再需要编写...

    Bean开发实例之三实体Bean开发实例

    ### 实体Bean开发实例 #### 实体Bean基本理论 实体Bean是EJB(Enterprise JavaBeans)框架中的一个重要组成部分,主要用于代表持久化的数据。简而言之,实体Bean是一种服务器端组件,用于封装存储在数据库或其他...

    EJB3开发Entity

    EJB3的实体Bean通常与Java Persistence API (JPA)一起使用,JPA是Java EE的一部分,提供了一种标准的方式来管理对象-关系映射(ORM)。Hibernate是一个流行的JPA实现,提供了更丰富的功能和性能优化。 3. **注解...

    JPA学习源码(EJB实体Bean)

    **JPA学习源码(EJB实体Bean)** Java Persistence API(JPA)是Java平台上的一个标准,用于管理和持久化对象。它简化了在关系数据库中存储和检索Java对象的过程,是JAVA EE5中引入的重要组件。JPA通过提供ORM(对象...

    EJB 3.0学习之实体Bean

    EJB 3.0是Java企业版(Java EE)中的一个重大改进,它极大地简化了企业级Java组件的开发,特别是对于实体Bean的处理。在EJB 3.0之前,实体Bean通常需要实现Home接口、Remote接口或Local接口,这使得编码过程变得复杂...

    EJB3.0源代码,包含会话Bean,实体Bean,还有消息Bean

    本资源包包含了会话Bean、实体Bean和消息Bean的源代码,这三种类型的Bean是EJB 3.0的核心组成部分。 1. **会话Bean (Session Beans)** - **无状态会话Bean (Stateless Session Beans)**: 提供无持久性状态的业务...

    ejb实例包括session bean和实体bean

    2. **Container-managed Persistence (CMP)**:容器负责对象与数据库之间的持久化工作,开发者无需直接处理数据库操作,只需定义实体Bean的字段和属性。 3. **Entity Beans 3.0(EJB 3.0引入)**:简化了Entity Bean...

    ejb之实体Bean与cloudscape数据库事务处理代码

    在Java世界里,EJB(Enterprise JavaBeans)是用于构建企业级应用的重要组件模型,尤其在J2EE 1.3版本中,实体Bean(Entity Beans)是处理业务对象持久化的主要工具。实体Bean通常代表应用程序中的数据模型,如...

    ejb sessionbean demo

    在"ejb sessionbean demo"中,我们主要探讨的是如何使用EJB的Session Bean进行开发和演示。Session Bean通常用于实现业务逻辑,它们可以是无状态的,意味着每个请求都会创建一个新的Bean实例,不保留任何先前会话的...

    JPA 批注参考 EJB3.0实体Bean注解详细解析

    ### Java Persistence API (JPA) 与 EJB 3.0 实体 Bean 注解详解 #### 一、JPA 概述与实体 Bean 的转变 Java Persistence API (JPA) 是 Java 社区规范 JSR-220 的一部分,旨在提供一种标准的方式来处理对象与关系...

    ejb3 第10讲 --开发单表映射的实体bean

    在学习和实践中,可以通过以下步骤创建一个单表映射的EJB实体Bean: 1. 定义实体类,使用`@Entity`、`@Table`等注解。 2. 注解属性以匹配数据库表的列。 3. 创建`EntityManager`实例,用于操作Bean。 4. 使用`...

    EJB三种bean的开发模式

    在JBoss这样的应用服务器中,EJB提供了三种主要的bean类型:实体Bean(Entity Bean)、会话Bean(Session Bean)和消息驱动Bean(Message-Driven Bean)。下面将详细探讨这三种bean的开发模式。 1. 实体Bean...

    EJB 会话BEAN PPT

    EJB是Java Enterprise Edition(J2EE或现在的Java EE)的一部分,主要分为三种类型:会话Bean(Session Beans)、实体Bean(Entity Beans)和消息驱动Bean(Message-Driven Beans)。 **会话Bean介绍** 会话Bean是...

    PAS(Primeton Application Server)企业版EJB开发案例分析:有状态/无状态会话Bean与CMP/BMP实体Bean

    主要包括有状态会话Bean (Stateful Session Bean) 和无状态会话Bean (Stateless Session Bean),以及容器管理持久化实体Bean (CMP Entity Bean) 和Bean管理持久化实体Bean (BMP Entity Bean) 的开发过程。...

Global site tag (gtag.js) - Google Analytics