`

ejb中的EntityBean例子

    博客分类:
  • ejb
阅读更多

前面一节介绍了ejb的环境搭建与helloworld的例子,这节就不介绍ejb的环境了,直接EntityBean(实体bean)

一、环境配置

1、在jboss-4.2.3.GA\docs\examples\jca目录下的mysql-ds.xml(采用的是mysql数据库)复制到桌面,修改里面的内容为:

<?xml version="1.0" encoding="UTF-8"?>

<datasources>
  <local-tx-datasource>
    <jndi-name>xuDS</jndi-name>
    <connection-url>jdbc:mysql://localhost:3306/jpa</connection-url>
    <driver-class>com.mysql.jdbc.Driver</driver-class>
    <user-name>root</user-name>
    <password>123456</password>
    <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name>
    <metadata>
       <type-mapping>mySQL</type-mapping>
    </metadata>
  </local-tx-datasource>
</datasources>

 2、将mysql-ds.xml复制到jboss-4.2.3.GA\server\default\deploy目录下

 3、新建一个EntityBean的java工程,然后在src下面新建一个META-INF文件

 4、然后在META-INF文件下面建一个persistence.xml

<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="xu" transaction-type="JTA">
   	  <jta-data-source>java:xuDS</jta-data-source>
      <properties>
         <property name="hibernate.hbm2ddl.auto" value="update"/>
      </properties>
   </persistence-unit>
</persistence>

 二、EJB代码编写

1、编写一个Person.java实体类

package com.xu.entity;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;

@Entity
public class Person implements Serializable{
	private static final long serialVersionUID = 1026640919507025930L;
	private Integer id;
	private String name;
	
	public Person() {
	}

	public Person(String name) {
		super();
		this.name = name;
	}

	@Id @GeneratedValue
	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}
	
	@Column(length=20,nullable=false)
	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

}

 

2、编写一个PersonService.java接口

package com.xu.service;

import java.util.List;

import com.xu.entity.Person;

public interface PersonService {
	
	public void save(Person person);
	
	public void delete(Integer id);
	
	public void update(Person person);
	
	public Person getPerson(Integer id);
	
	public List<Person> getAllPerson();
	
}

 

3、编写一个PersonServiceBean.java实现类

package com.xu.serviceImpl;

import java.util.List;

import javax.ejb.Remote;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

import com.xu.entity.Person;
import com.xu.service.PersonService;

@Stateless
@Remote(PersonService.class)
public class PersonServiceBean implements PersonService{

	@PersistenceContext(unitName="xu")//注意:这里要跟persistence.xml中的name一致
	EntityManager em;
	
	@Override
	public void delete(Integer id) {
		em.remove(em.getReference(Person.class, id));
	}

	@Override
	public Person getPerson(Integer id) {
		return em.find(Person.class, id);
	}

	@Override
	public void save(Person person) {
		em.persist(person);
	}

	@Override
	public void update(Person person) {
		em.merge(person);
	}

	@SuppressWarnings("unchecked")
	@Override
	public List<Person> getAllPerson() {
		return em.createQuery(" from Person").getResultList();
	}

}

4、将EntityBean工程打包到jboss-4.2.3.GA\server\default\deploy目录下 

5、运行jboss中的run.bat

三、测试

1、编写一个PersonServiceTest.java测试类

 

package com.test;

import java.util.List;

import javax.naming.InitialContext;

import org.junit.Before;
import org.junit.Test;

import com.xu.entity.Person;
import com.xu.service.PersonService;


public class PersonServiceTest{
	private PersonService personService;
	
	@Before
	public void before() throws Exception{
		InitialContext ctx = new InitialContext();
		personService = (PersonService) ctx.lookup("PersonServiceBean/remote");
	}

	@Test
	public void testSave(){
		personService.save(new Person("小明"));
	}
	
	@Test
	public void testUpdate(){
		Person person = personService.getPerson(1);
		person.setName("小王");
		personService.update(person);
	}
	
	@Test
	public void testGetPerson(){
		Person person = personService.getPerson(1);
		System.out.println(person.getName());
	}
	
	@Test
	public void testGetAllPerson(){
		List<Person> list = personService.getAllPerson();
		for(Person person : list){
			System.out.println(person.getName());
		}
	}
	
}

 

分享到:
评论

相关推荐

    EJB2.X 的使用例子

    EJB2.X 的使用例子,讲解了EJB2.X Entity Bean如何映射数据至表中, Session Bean如何使用,客户端调用Session Bean 中的业务方法. 有问题,请联系本人: QQ:343827585 (注:源码下载后,请删除后缀名为 .java的相应...

    EJB3.0 实例教程 -- 切片1

    2.2 运行一个EJB3例子.......9 2.3 在独立的TOMCAT 中调用EJB....9 2.4 发布在JBOSS集成环境中的WEB应用调用EJB.....10 第三章开发前的准备............10 3.1 熟悉JBOSS的目录结构10 3.2 JBOSS中的部署...............

    J2EE中文版指南 CHM格式 带全文检索

    与会话Bean、EntityBean的不同之处 46 何时需要Message-DrivenBean 47 5.定义客户端访问接口 47 远程访问 47 本地接口 48 Local接口和CMR(Container-Managed RelationShips) 49 两种访问方式的抉择 49 性能和访问...

    EJB3.0 实例教程 -- 切片2

    2.2 运行一个EJB3例子.......9 2.3 在独立的TOMCAT 中调用EJB....9 2.4 发布在JBOSS集成环境中的WEB应用调用EJB.....10 第三章开发前的准备............10 3.1 熟悉JBOSS的目录结构10 3.2 JBOSS中的部署...............

    J2EE指南(官方).pdf

    三、EntityBean 四、Message-Driven Bean 五、定义客户端访问接口 六、企业Bean的“内容” 七、企业Bean的命名约定 八、企业Bean的生存周期 第4章 有状态会话Bean示例 一.购物车会话Bean CartEJB 二.其他的企业Bean...

    jsp servlet 入门学习资料-新手一看就懂

    10.1.2 EJB的开发与使用中的角色 10.2 Session Bean 10.2.1 Session Bean的状态管理模式 10.2.2 Session Bean的生命周期 10.3 Entity Bean 10.3.1 Entity Bean的特性 10.3.2 Entity Bean的生命周期 10.4 EJB...

    jsp从入门到高级编程

    10.1.2 EJB的开发与使用中的角色 10.2 Session Bean 10.2.1 Session Bean的状态管理模式 10.2.2 Session Bean的生命周期 10.3 Entity Bean 10.3.1 Entity Bean的特性 10.3.2 Entity Bean的生命周期 10.4 EJB...

    J2EE使用指南

    3,EntityBean 38 4,Message-Driven Bean 40 5.定义客户端访问接口 42 6,企业Bean的“内容” 45 7,企业Bean的命名约定 46 8,企业Bean的生存周期 46 第4章 有状态会话Bean示例 51 1.购物车会话Bean CartEJB 51 ...

    JSP高级教程

    10.1.2 EJB的开发与使用中的角色 10.2 Session Bean 10.2.1 Session Bean的状态管理模式 10.2.2 Session Bean的生命周期 10.3 Entity Bean 10.3.1 Entity Bean的特性 10.3.2 Entity Bean的生命周期 10.4 EJB...

    进销存系统文档作业例子

    对于客户机,EntityBean是一种持久性对象,它代表一个存储在持久性存储器中的实体的对象视图,或是一个由现有企业应用程序实现的实体。 Session Bean 还可以再细分为 Stateful Session Bean 与 Stateless Session ...

    JSP高级编程

    10.1.2 EJB的开发与使用中的角色 10.2 Session Bean 10.2.1 Session Bean的状态管理模式 10.2.2 Session Bean的生命周期 10.3 Entity Bean 10.3.1 Entity Bean的特性 10.3.2 Entity Bean的生命周期 ...

    EJB3.0实例教程

    2.2 运行一个EJB3例子..................................................................................................................................................9 2.3 在独立的TOMCAT 中调用EJB.......

    J2EE指南.doc

    常见问题和解决方法 31 第3章 企业Bean 35 1,企业Bean概述 36 2,会话Bean 36 3,EntityBean 38 4,Message-Driven Bean 40 5.定义客户端访问接口 42 6,企业Bean的“内容” 45 7...

    h_JAVA 2应用编程150例.rar

    实例109 创建CMP EntityBean 386 实例110 编写MessageDrivenBean 392 实例111 使用JNDI 396 实例112 各种EJB之间的调用过程 397 实例113 使用B/S结构的EJB 402 实例114 使用C/S结构的EJB组件服务 405 实例115 与时间...

    J2EE应用开发详解

    426 20.5 系统实现 431 20.5.1 工程开发环境的建立 431 20.5.2 EJB Entity开发 435 20.5.3 EJB Session开发 443 20.5.4 Message-Driven Bean开发 447 20.5.5 JSF/Richfaces开发 448 20.5.6 远程连接 455 20.5.7 系统...

    Hibernate_Annotation关联映射

    上面这个例子中,Trainer通过TrainedMonkeys表和Monkey建立了单向关联,其中外键trainer_id关联到Trainer(joinColoumn),而外键monkey_id关联到Monkey(inversejionColoumns) 默认处理机制: 通过联接表来建立单向一对...

    Hibernate注释大全收藏

    @Entity 注解将一个类声明为实体 Bean, @Id 注解声明了该实体Bean的标识属性。 Hibernate 可以对类的属性或者方法进行注解。属性对应field类别,方法的 getXxx()对应property类别。 定义表 通过 @Table 为实体...

Global site tag (gtag.js) - Google Analytics