`

EJB3.0_开发单表映射的实体bean

    博客分类:
  • J2EE
阅读更多

一、部署Jboss数据源

mysql的jdbc驱动复制到jboss服务器的lib目录中

 

 

 

 

修改jboss数据源配置文件:到jboss-5.1.0.GA\docs\examples\jca目录下找到对应的数据源配置文件,我用的是mysql,所以只修改mysql-ds.xml文件
 修改成自己的mysql地址

 

<jndi-name>MysqlDS</jndi-name>
    <connection-url>jdbc:mysql://localhost:3306/bbs?useUnicode=true&amp;characterEncoding=UTF-8</connection-url>
    <driver-class>com.mysql.jdbc.Driver</driver-class>
    <user-name>root</user-name>
    <password>123456</password>
 

 

 

修改完保存到目录jboss-5.1.0.GA\server\default\deploy下,启动Jboss(我用的是Myeclipse启动Jboss),命令控制台看到

 部署成功提示 JNDI name 'java:MysqlDS';


二、开发实体Bean

使用Myeclipse新建EJB项目,JNDI Data Source填写Jboss的JNDI name,前面的控制台可以看到,Persistence Unit Name自己命名,如:MysqlUnit


 完成

 

引入Jboss所有的jar包到项目中

使用Myeclipse的Hibernate视图,EJB反向工程


 



 
 点击完成


 
 
 三、编写业务逻辑接口

 

我们来写一个接口

public interface DuserService {
	public void delete(Integer id);
	public Duser getDuser(Integer id);
	public List<Duser> getDusers() ;
	public void save(Duser user);
	public void update(Duser user);
}
 

无状态会话Bean

@Stateless//设置成无状态会话Bean
@Remote(DuserService.class)//设置成远程Bean,公开“接口”
public class DuserServiceBean implements DuserService{
	/*
	 * 注入EntityManager对象
	 * unitName要与persistence.xml文件中保持一致
	 */
	@PersistenceContext(unitName = "MysqlUnit")
	EntityManager em;

	public void delete(Integer id) {
	/*
	 * em.getReference(Duser.class, id)
	 * 得到一个托管的实体对象
	 */
		em.remove(em.getReference(Duser.class, id));
	}

	public Duser getDuser(Integer id) {
		return em.find(Duser.class, id);
	}

	@SuppressWarnings("unchecked")
	public List<Duser> getDusers() {
		return em.createQuery("select o from Duser o").getResultList();
	}

	public void save(Duser user) {
		/*
		 * 保存新建状态对象,插入数据库,添加新纪录
		 */
		em.persist(user);
	}

	public void update(Duser user) {
		/*
		 * 实体Bean处于游离状态,可以删除
		 */
		em.merge(user);
		/*
		 * 托管状态,使用set方法就可以修改数据user.set*();
		 */

	}
}
 


 我们发布到Jboss中,启动Jboss,在控制台中观察,

 

16:10:35,937 INFO  [JndiSessionRegistrarBase] Binding the following Entries in Global JNDI:

	DuserServiceBean/remote - EJB3.x Default Remote Business Interface
	DuserServiceBean/remote-cn.snailteam.entity.DuserService - EJB3.x Remote Business Interface
 

 

说明我们的DuserServiceBean无状态会话Bean已经部署成功。

 

四、测试

 

 新建一个DuserService接口测试类

public class DuserServiceTest {

	public static DuserService service;

	@BeforeClass
	public static void setUpBeforeClass() throws Exception {
		/*
		 * 参数来自于当前目录下的jndi.properties文件
                 *远程调用的话,通过jndi.properties找到会话Bean,如果在一个容器内的话
                 *(比如部署在同在一个EJB容器内既一个Jboss内),就不需要jndi.properties,
                 *直接在容器中初始化上下文,找到EJB会话Bean                
                 */
		javax.naming.InitialContext ctx = new javax.naming.InitialContext();
		/*
		 * Jboss启动控制台中可以观察到 
		 * DuserServiceBean/remote - EJB3.x Default Remote Business Interface 
		 */
		service = (DuserService) ctx.lookup("DuserServiceBean/remote");
		System.out.println("初始化完成");
	}

	@Test
	public void testDelete() {

	}

	@Test
	public void testGetDuser() {

	}

	@Test
	public void testGetDusers() {
		List<Duser> users = service.getDusers();
		for(Duser user:users){
			System.out.println(user.getUid()+"-------"+user.getUsername());
		}
	}

	@Test
	public void testSave() {
		
	}

	@Test
	public void testUpdate() {

	}

}
 

测试之前我们需要设置初始化上下文件jndi.properties (可以查文档)

#Jboss命名连接工厂
java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
#Jboss命名连接工厂地址
java.naming.provider.url=localhost:1099

 可以测试了。

  • 大小: 79.8 KB
  • 大小: 10.8 KB
  • 大小: 7 KB
  • 大小: 7.1 KB
  • 大小: 77.4 KB
  • 大小: 26.6 KB
  • 大小: 8.4 KB
分享到:
评论

相关推荐

    EJB3.0_Servlet.rar_ejb3.0 example

    在这个"EJB3.0_Servlet.rar_ejb3.0 example"的压缩包中,我们很显然会看到一个关于如何在Servlet中使用EJB 3.0的示例。 首先,EJB 3.0引入了注解驱动的编程模型,不再需要XML配置文件来定义bean的行为。开发者可以...

    EJB3.0ExampleSourceCode.rar_EJB3_EJB3.0_ejb

    在这个名为"EJB3.0ExampleSourceCode.rar"的压缩包中,包含了一系列EJB 3.0的实例源代码,这些实例可以帮助我们深入理解EJB 3.0的关键特性。 1. **实体Bean(Entity Bean)**:EJB 3.0引入了基于JPA(Java ...

    EJB3.0的一个单表映射实体bean

    EJB3.0的一个单表映射实体bean,实现对数据的增、删、改、查

    EJB3.0__EJB3.0

    EJB3.0引入了注解驱动的JPA(Java Persistence API),使得实体管理更为简便。 EJB3.0的主要优点: - **分布式能力**:EJB可以在分布式环境中运行,支持跨网络的应用部署。 - **事务处理**:EJB提供了事务管理,...

    EJB3.0_jBuilder_StepByStep.rar_2007

    1. **EJB3.0实体Bean概述**:EJB3.0实体Bean代表持久化数据模型,它们与数据库表进行映射,负责存储和检索业务数据。EJB3.0引入了注解(Annotation),使得实体Bean的配置变得更加简单,不再需要XML文件来描述Bean的...

    EJB.rar_EJB3_EJB3.0_ejb

    通过`@Entity`注解定义实体类,`@Table`指定映射的数据库表,`@Id`定义主键,可以轻松实现对象关系映射。同时,`@GeneratedValue`用于自动生成主键,`@OneToMany`、`@ManyToOne`、`@ManyToMany`和`@OneToOne`用于...

    EJB3.0__平台配置.zip

    3. **实体Bean(Entity Bean)**:EJB 3.0引入了JPA(Java Persistence API),用于对象关系映射(ORM)。`@Entity`注解标识一个类为持久化实体,`@Table`定义对应的数据库表,`@Id`指定主键字段,而`@...

    EJB3.0API.rar_ejb_ejb3.0a_ejb3.0api

    2. **实体bean的POJO化(Plain Old Java Objects)**:EJB 3.0引入了基于Java Persistence API(JPA)的实体bean,允许使用普通的Java类作为数据库对象,无需继承特定的EJB基类或实现接口,提高了代码的可重用性。...

    ejb3.0_培训笔记(达内).

    1. **实体Bean**:EJB 3.0引入了注解(Annotations)的概念,使得实体Bean的定义更加直观和简洁。开发者可以直接在Java类上使用`@Entity`注解来标记一个类作为实体,而不再需要XML配置文件。此外,`@Id`注解用于标识...

    EJB3.0_Bacic(JPA).rar_orm

    4. **实体bean(Entity Beans)**:EJB3.0中的实体bean基于JPA(Java Persistence API),采用ORM(Object-Relational Mapping)技术,将Java对象与数据库表进行映射。 **JPA规范与ORM映射:** JPA是Java EE平台的...

    ejb3.0开发规范PDF

    在EJB 3.0中,实体Bean的使用大大简化。不再需要实现EntityBean接口,而是通过`@Entity`注解来标记实体类。此外,EJB 3.0引入了`@GeneratedValue`来自动化主键生成,`@OneToMany`、`@ManyToOne`、`@OneToOne`和`@...

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

    - **Java Persistence API (JPA)**: EJB 3.0中,实体Bean通常与JPA一起使用,JPA提供了一种统一的方式来访问和操作数据库,通过`@Table`, `@Id`, `@Column`等注解定义映射关系。 3. **消息Bean (Message-driven ...

    EJB3.0开发文档

    在EJB3.0中,实体Bean不再需要编写复杂的Home接口和Remote接口,而是通过注解(Annotations)直接在Java类上定义。JPA(Java Persistence API)成为默认的持久化机制,使得数据模型可以直接映射到数据库表,这大大...

    《EJB 3.0入门经典》 源码

    在"ejb3.0入门经典教程-source"这个压缩包中,包含了书中各个章节的示例代码,覆盖了EJB 3.0的各个方面,例如实体Bean的创建、会话Bean的使用、事务管理、安全性设置以及JPA的持久化操作等。这些源码对于初学者来说...

    2022年EJB 3.0开发指南之多表映射Java教程.docx

    本教程聚焦于如何使用Java和EJB 3.0标准来映射实体Bean到多个数据库表。EJB(Enterprise JavaBeans)是Java EE平台的一部分,用于构建企业级应用,而EJB 3.0版本引入了许多简化开发的特性,包括注解驱动的编程模型。...

    EJB3.0架包

    1. **实体Bean(Entity Beans)**:实体Bean代表应用程序中的持久化数据,通常对应数据库中的表。EJB3.0引入了JPA(Java Persistence API),通过注解可以轻松地定义实体类和映射关系,不再需要编写大量的XML配置...

    浪曦_EJB3.0实例教程_多对多映射

    在企业级Java应用开发中,Entity Bean(实体Bean)是核心组件之一,用于持久化业务数据。EJB 3.0是Java EE 5规范的一部分,它极大地简化了Bean的使用,包括对关系数据库的映射。本教程主要探讨的是EJB 3.0中的多对多...

Global site tag (gtag.js) - Google Analytics