`
javaEEdevelop
  • 浏览: 863433 次
  • 性别: 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开发实例之三实体Bean开发实例

    对EJB中实体Bean的实例介绍

    EJB 3.0学习之实体Bean

    在EJB3.0中开发实体Bean非常简单,你可以象开发一般的java bean一样编程,只需做少量的注释。一个实体bean不需要实现Home接口或者Remote、Local接口。

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

    NULL 博文链接:https://fruitking.iteye.com/blog/563093

    EJB3开发Entity

    EJB3开发Entity EJB3开发Entity

    EJB3开发第一个无状态会话bean

    NULL 博文链接:https://diaochenlong2.iteye.com/blog/1846828

    EJB3.0开发入门 Step by Step (图文讲解)

    EJB3.0开发入门(图文讲解), EJB3开发实体Bean,会话Bean,消息Bean。

    EJB应用开发详解+书中源码

    全书以剖析EJB 2.0的技术核心以及开发与部署的过程为中心,共分3大部分20章,包括无状态会话Bean、有状态会话Bean、CMP实体Bean、EJB QL语言、集成RMI-IIOP与JNDI、应用客户端开发、EJB部署、持久化EJB与CORBA的集成...

    精通EJB第三版

    第2篇重点关注EJB编程的具体内容和过程,其中,研究了如何开发如下三种EJB组件:会话Bean、实体Bean和消息驱动Bean。具体内容包括开发各种EJB组件的基础知识(结合开发实例)、组件生命周期的详细阐述;第3篇是本书最为令...

    EJB开发一系列列子

    里面包含EJB 中的会话Bean 实体Bean 消息Bean 开发的小例子和EJB+Spring+JSf集成的小列子,可以帮助开发人员对EJB快迅上手

    传智播客 EJB3.0PPT 完整版 黎明活

    10_开发单表映射的实体bean 11_开发消息驱动bea 12_开发EJB容器模型的WEB服务 附录01_EJB3基本概念及发展前景 附录02_EJB3.0推荐教程 附录03_EJB3的运行环境 如果需要配套视频,请给本人私信。

    经典JAVA.EE企业应用实战.基于WEBLOGIC_JBOSS的JSF_EJB3_JPA整合开发.pdf

    第二部分详细讲解了jsf ri、jta、jndi、rmi、jms、javamail、ejb 3的session bean、message driven bean、jpa、jax-ws 2、jaas等java ee知识,这部分知识以jsf+ejb 3+jpa整合开发为重点,通过使用netbeans ide工具...

    EJB详细解释

    EJB是sun的服务器端组件模型,最大... 在J2EE里,Enterprise Java Beans(EJB)称为Java 企业Bean,是Java的核心代码,分别是会话Bean(Session Bean),实体Bean(Entity Bean)和消息驱动Bean(MessageDriven Bean)。

    EJB 3.0从入门到精通

    全书共分16章,内容依次包含了Java EE概述、EJB基础、搭建EJB环境、会话bean、持久化实体、持久化实体管理器、对象关系映射、JPQL查询、消息驱动bean、事务、提高EJB 3.0性能、从Web层访问EJB 3和EJB安全、EJB和Web...

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

    NULL 博文链接:https://8366.iteye.com/blog/438239

    EJB3_Persistence开发手册-EJB3_QL查询

    详细介绍了EJB3中关于实体bean的增删改查等操作,并给出了多种示例,非常详细。

    ejb3.0 +jboss4.2 实例开发

    ejb3.0+ jboss4.2详细教程 包括: 会话bean 实体bean

    EJB3.0入门经典

    EJB是sun的服务器端组件模型,设计... 在J2EE里,Enterprise Java Beans(EJB)称为Java 企业Bean,是Java的核心代码,分别是会话Bean(Session Bean),实体Bean(Entity Bean)和消息驱动Bean(MessageDriven Bean)。

    Java EJB 3.0实例,企业应用开发核心技术 PDF 中文教程.rar

    Java EJB 3.0实例教程——企业应用开发核心技术 PDF,网上有关EJB方面的教程...章节内容丰富,内容涉及环境配置、EJB包相关知识、会话BEAN、消息驱动、实体Bean、使用EJB3.0构建轻量级应用框架、Web应用等众多内容……

Global site tag (gtag.js) - Google Analytics