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

简单EJB3例子

阅读更多

使用EJB3  jdk必需在1.5及以上

首先写一个EJB3.0的项目肯定有2个部分组成(下面是用eclipse+jboss-4.2.3.GA说明):

1. EJB的组件(封装了业务逻辑的组件)

2. 客户端(注意:客户端可以说Java程序,也可以说Web程序,或是WebService)

 

 

第一步在jboss服务器上配置数据源  我采用的oracle11g数据库   我采用是默认服务器所以是  \default\deploy目录 名字命名 name-ds.xml  后缀必需是 -ds.xml  复制到 jboss安装目录   D:\setup\jboss-4.2.3.GA\server\default\deploy      然后复制jdbc驱动 在相应的服务器lib目录  D:\setup\jboss-4.2.3.GA\server\default\lib    这样数据源就建好了

<?xml version="1.0" encoding="UTF-8"?>
<datasources>
  <local-tx-datasource>
    <jndi-name>leamDS</jndi-name>
    <connection-url>jdbc:oracle:thin:@localhost:1521:orcl</connection-url>
    <driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
    <user-name>userName</user-name>
    <password>password</password>
	<min-pool-size>5</min-pool-size>
	<max-pool-size>100</max-pool-size>
    <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter</exception-sorter-class-name>
      <metadata>
         <type-mapping>Oracle11g</type-mapping>
      </metadata>
  </local-tx-datasource>
</datasources>

 

EJB3实体bean采用JPA技术   使用注解也大大简化了程序 使ejb更简单

 

新建项目   添加jboss  D:\setup\jboss-4.2.3.GA\client 目录下所有包添加到工程中 接下来编写代码  创建实体对象

@Entity
@Table(name = "TB_JOBTYPE")
public class Jobtype implements java.io.Serializable {
	
	private static final long serialVersionUID = 1L;
	@Id @Column(name="jobtypeid") @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="my_entity_seq_gen")
	@SequenceGenerator(name="my_entity_seq_gen", sequenceName="JOBTYPESEQ",allocationSize=1)
	private Integer jobtypeid;
	@Column(name="name",length=30,nullable=false) 
	private String name;

	
	public Jobtype(){}
	/**
	 * @return the jobtypeid
	 */
	public Integer getJobtypeid() {
		return jobtypeid;
	}
	/**
	 * @param jobtypeid the jobtypeid to set
	 */
	public void setJobtypeid(Integer jobtypeid) {
		this.jobtypeid = jobtypeid;
	}
	/**
	 * @return the name
	 */
	public String getName() {
		return name;
	}
	/**
	 * @param name the name to set
	 */
	public void setName(String name) {
		this.name = name;
	}

 

实体对象服务接口

 

public interface JobtypeService {

	public void save(Jobtype job);

	public void delete(Integer jobtypeid);

	public void update(Jobtype record);
	
	public List<Jobtype> getJobtypes();
}

 

实现类  远程bean组件

@Stateless
@Remote(JobtypeService.class)
public class JobtypeServiceBean implements JobtypeService {
 //创建实体管理器 unitName="leam" leam是persistence.xml文件配置的名称
@PersistenceContext(unitName="leam") EntityManager em; 
	public void save(Jobtype job) {
		em.persist(job);
	}

	public void delete(Integer jobtypeid) {
		em.remove(em.getReference(Jobtype.class, jobtypeid));
	}

	public void update(Jobtype job) {
		em.merge(job);
	}

	@SuppressWarnings("unchecked")
	public List<Jobtype> getJobtypes() {
	return em.createQuery("select j  from Jobtype j").getResultList();
	}

}
 

 

 

获取jboss配置好的数据源  必需在src 新建META-INF目录 persistence.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0"
	xmlns:persistence="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 persistence_1_0.xsd ">

    <!-- 获取jboss数据源  使用jpa事务类型 -->
	<persistence-unit name="leam" transaction-type="JTA">
	    <!-- jboss数据源名称 leamDS   -->
		<jta-data-source>java:leamDS</jta-data-source>
		<properties>	
		<property name="hibernate.show_sql" value="true"/>
		<property name="hibernate.format_sql" value="false"/>
		<property name="hibernate.dialect" value="org.hibernate.dialect.OracleDialect"/>
		</properties>
	</persistence-unit>

</persistence>
 

这样ejb实体组件就写好了 我们只需要导出成jar包 部署到jboss服务器上 我使用jboss默认的设计服务器 D:\setup\jboss-4.2.3.GA\server\default\deploy    我导出的名字 EntityBean.jar 发布之后在

http://localhost:8080/jmx-console/  

http://localhost:8080/jmx-console/HtmlAdaptor  的底部

Global JNDI Namespace

JobtypeServiceBean  +   -remote

能查到你发布好的名称  说明发布成功。

 

 

编写客户端测试程序  测试保存  删除 查询  src下面新建文件jndi.properties

 

  调用ejb要使用jndi技术查找发布的ejb组件名称   这里配置 jndi 初始化接口      默认端口  本机地址

java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.provider.url=localhost:1099
 

 

测试类

 

public class JobtypeServiceTest {

	private static JobtypeService jobtypeService;
	@BeforeClass
	public static void setUpBeforeClass() throws Exception {
		InitialContext ctx=new InitialContext();
                //发布的ejb名称
                jobtypeService=(JobtypeService)ctx.lookup("JobtypeServiceBean/remote");
	}

	@Test
	public void testSave(){
		try{
		Jobtype job=new Jobtype();
		job.setAddTime(new Date());
		job.setFlag(1);
		job.setName("ejb测试");
		job.setOpcode("admin");
		jobtypeService.save(job);
		}catch(Exception e){e.printStackTrace();}
	}

	@Test
	public void testDelete() {
		jobtypeService.delete(13701);
	}


	@Test
	public void testGetJobtypes() {
		System.out.print(jobtypeService.getJobtypes().size());
	}

}
 

所有工作完成 一个简单的ejb3例子  附件中源代码

 

分享到:
评论

相关推荐

    EJB3入门例子

    2. **持久化框架(Persistence Framework)**:EJB3引入了JSR-220规范的JPA(Java Persistence API),使得对象关系映射变得更加简单。通过`@Entity`、`@Table`、`@Id`等注解,开发者可以直接在Java类上定义数据模型...

    Java EJB简单例子.rar

    Java EJB简单例子,这是HelloWorldBean的Home接口,它是EJB对象的生成库,无状态会话(将在下一个实例中具体讲解)Bean,这个接口是客户端与EJB对象相互作用的中间途径,通过Client触发调用Bean方法:  try {  //...

    ejb简单例子

    ejb简单例子

    第一个EJB简单例子

    Enterprise JavaBeans(EJB)是Java平台上...通过这个简单的EJB例子,你可以学习到如何从头开始创建一个基本的EJB组件,了解其工作原理和在实际项目中的应用。这将帮助你更好地理解和掌握Java企业级开发的核心技术。

    ejb01例子开发框架是ejb3

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

    EJB简单例子

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

    一个ejb学习时的简单例子

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

    jasperreports ejbql例子

    例如,一个简单的EJBQL查询可能是: ```java String ejbql = "SELECT entity FROM Entity entity WHERE entity.someProperty = :value"; ``` 在这个示例中,`Entity`是我们的实体类,`someProperty`是该类的一个...

    EJB3 实例练习(一)

    在这个实例练习中,我们将探讨EJB3的基本概念、特性以及如何创建和运行一个简单的EJB3应用。 1. EJB3概述 EJB3引入了注解驱动的编程模型,消除了XML配置文件的需求,大大减少了开发工作量。它包括三种主要类型的...

    jboss 测试EJB 的例子

    5. **客户端调用**:ejb_client可能是一个简单的Java客户端程序,使用EJB的远程接口来调用服务端的EJB方法。JNDI(Java Naming and Directory Interface)用于查找并绑定EJB的引用。 6. **readme.txt**:这个文件...

    EJB3.0完整代码例子

    3. **持久性管理(Persistence Management)**:EJB3.0集成了JPA(Java Persistence API),使得数据持久化变得更加简单。通过@Entity和@Table等注解,开发者可以直接将Java类映射到数据库表,而无需编写SQL。 4. *...

    EJB项目例子

    3. **EJB部署** - **ejb-jar.xml**:定义Bean的元数据,包括Bean的接口、实现类、事务属性等。 - **weblogic-ejb-jar.xml**(或对应服务器的部署描述符):针对特定服务器的配置,如安全角色、资源引用等。 - **...

    Weblogic11g+EJB3的小例子

    EJB3引入了JPA(Java Persistence API),使得实体Bean的管理更加简单。 - **会话Bean(Session Bean)**:提供业务逻辑服务,可以是无状态的(Stateless Session Bean)或有状态的(Stateful Session Bean)。 - ...

    ejb3加数据库的简单例子

    在本文中,我们将深入探讨如何在EJB3环境下使用数据库,以一个简单的例子来引导初学者。EJB(Enterprise JavaBeans)3.0是Java EE(企业版)平台的一部分,提供了一种标准的方法来开发分布式、事务处理和持久化的...

    EJB Dev 1: EJB入门例子

    为了运行这个EJB例子,你需要一个支持EJB的Java EE服务器,如GlassFish、WildFly或TomEE。部署EJB应用到服务器后,客户端代码可以通过JNDI查找找到并调用Bean的方法。在开发过程中,IDE如Eclipse或IntelliJ IDEA提供...

    EJB例子

    在提供的文件名列表中,我们可以看到ejb1到ejb5可能代表EJB的不同版本,从早期的EJB 1.x到EJB 5(实际上是EJB 3.1,因为EJB 5尚未正式发布)。myweb可能包含一个Web应用程序,该应用可能使用EJB作为其后端服务。ejb4...

    自己写了个ejb3的小例子代码 ( 之 四 )

    在本篇中,我们将深入探讨EJB3(Enterprise JavaBeans 3.0)技术,这是一个在Java平台上用于构建企业级应用程序的重要组件。EJB3是Java EE(Java Enterprise Edition)的一部分,它简化了EJB规范,使其更易于理解和...

    EJB_TEST自己编写的EJB例子

    "简单易懂"表明这个EJB示例可能采用了清晰的代码结构,简单的业务逻辑,以及良好的注释,使得初学者也能快速理解其工作方式和设计思路。 综上所述,EJB_TEST是一个帮助学习者理解和实践EJB技术的示例项目,涵盖了...

    ejb小例子

    这个"ejb小例子"是一个简易的示例,旨在帮助理解EJB的基本概念和用法。EJB提供了服务器端的组件模型,允许开发者创建可复用的、安全的、事务处理的业务逻辑组件。 EJB组件主要有三种类型: 1. **会话bean(Session ...

Global site tag (gtag.js) - Google Analytics