`

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());
		}
	}
	
}

 

分享到:
评论

相关推荐

    一个ejb学习时的简单例子

    在这个 ejb 学习的例子中,我们将深入探讨实体Bean(Entity Bean)和会话Bean(Session Bean),以及它们如何与前端交互。 1. **实体Bean(Entity Bean)**: 实体Bean代表应用程序中的持久数据,通常映射到数据库...

    Eclipse+Jboss EJB技术 会话Bean

    在实验中,你可能还会学习到EJB的接口定义、实体Bean(Entity Bean,用于持久化数据)、消息驱动Bean(Message-Driven Bean,用于处理消息队列)以及EJB的生命周期管理。此外,理解EJB容器如何处理事务、安全性、...

    EJB实体Bean与事物管理

    在EJB规范中,实体Bean(Entity Bean)是一种特殊类型的组件,用于持久化数据到数据库,模拟业务对象。事务管理则是EJB中的重要组成部分,确保了业务操作的一致性和可靠性。 1. **EJB实体Bean** - **定义**: EJB...

    EJB3.0完整代码例子

    5. **会话Bean的简化**:会话Bean(Session Beans)在EJB3.0中也得到了简化,可以声明为无状态(@Stateless)或有状态(@Stateful)。无状态Bean适用于处理不需保持上下文的请求,而有状态Bean则可以记住客户端的...

    EJB3入门例子

    1. **注解驱动(Annotation-based)**:在EJB3中,开发者可以使用注解来声明组件的角色、生命周期方法和持久化属性,如`@Entity`、`@Stateless`、`@Stateful`、`@SessionBean`等,大大减少了XML配置文件的使用。...

    Weblogic11g+EJB3的小例子

    在这个"Weblogic11g+EJB3的小例子"中,我们可以看到以下几个关键知识点: 1. **EJB3核心概念**: - **实体Bean(Entity Bean)**:代表业务数据模型,通常与数据库中的表进行映射。EJB3引入了JPA(Java ...

    EJB实体Bean学习

    在EJB中,实体Bean(Entity Bean)是持久化对象的代表,它们负责存储和检索数据库中的数据。在这个“EJB实体Bean学习”主题中,我们将深入探讨实体Bean的两大类型——BMP(Business Managed Persistence)和CMP...

    EJB 和WEBLOGIC 结合例子

    1. **EJB组件类型**:EJB包括三种主要类型:Session Beans(会话bean)处理客户端交互,Entity Beans(实体bean)代表持久化数据,Message-Driven Beans(消息驱动bean)用于处理JMS消息。 2. **EJB容器**:EJB容器...

    第一个EJB访问数据库例子

    在这个例子中,我们可能关注的是会话Bean,因为它们通常用于处理临时性的业务逻辑,包括与数据库的交互。 ### 2. 数据库连接 在EJB中,我们通常使用JDBC(Java Database Connectivity)API来建立与MySQL的连接。...

    简单EJB3例子

    在这个例子中,我们关注的是实体Bean。在EJB3中,我们可以使用`@Entity`注解来声明一个类作为实体Bean。此外,`@Table`注解用于指定映射到的数据库表名,`@Id`注解标识主键字段。 例如,一个简单的实体Bean可能如下...

    EJB 一个完整的例子

    EJB系统由三个主要组件构成:会话bean(Session Beans)、实体bean(Entity Beans)和消息驱动bean(Message-Driven Beans)。这些组件可以看作是服务提供者,为客户端应用程序提供服务。 1. **会话bean**: - **...

    ejb struts多层架构例子

    EJB组件分为三种类型:Session Beans(会话bean)处理客户端请求,Entity Beans(实体bean)管理持久性数据,以及Message-driven Beans(消息驱动bean)用于处理JMS(Java Message Service)消息。 **Struts MVC...

    EJB简单例子

    在本“EJB简单例子”中,我们将探讨EJB的基本概念、类型以及如何创建和运行一个简单的EJB应用。 1. **EJB组件类型** - **会话Bean(Session Beans)**:代表客户端的临时会话,提供业务逻辑服务。分为无状态会话...

    EJB实用经典教程例子

    EJB主要分为三种类型:会话Bean(Session Beans)、实体Bean(Entity Beans)和消息驱动Bean(Message-Driven Beans)。其中,会话Bean代表临时的业务逻辑,实体Bean则封装持久化的数据,而消息驱动Bean则用于处理...

    JSF+EJB成功的小例子

    这个"JSF+EJB成功的小例子"是一个综合实践,展示了如何在Java EE环境中整合JSF的UI优势和EJB的业务处理能力。通过解压提供的`JSF_EJB.war`文件并部署到指定目录,开发者可以学习如何在实际项目中使用这些技术,以及...

    EJB3.0+JSF例子

    在"**EJB3.0+JSF例子**"教程中,你将学习如何结合使用这两种技术,创建一个完整的、功能丰富的Web应用程序。教程可能涵盖了从创建EJB Bean和JSF Managed Bean,到配置和部署应用,以及处理用户交互和事务处理的全...

    EJB3.0开发Session Bean.rar

    在这个例子中,`@Stateless`注解声明了这是一个无状态Session Bean,`doSomething`方法展示了如何暴露业务逻辑。 **结论** EJB 3.0的Session Bean为开发企业级应用提供了强大且灵活的工具。通过理解其核心概念和...

    ejb01例子开发框架是ejb3

    **EJB 3 开发框架详解** EJB(Enterprise JavaBeans)是Java平台上的企业级组件模型,...在ejb01例子中,我们可以看到一个基于EJB3的简单示例,通过学习和实践这个例子,可以更好地理解和掌握EJB3的核心概念和技术。

    EJB例子

    2. **实体Bean(Entity Bean)** - **传统实体Bean(CMP, Container-Managed Persistence)**:容器负责管理对象的持久化状态,开发者只需要提供业务逻辑。这种类型的Bean通常映射到数据库中的表。 - **Java ...

    EJB2.X 的使用例子

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

Global site tag (gtag.js) - Google Analytics