EJB-持久化Bean开发

持久化Bean与普通的JAVA Bean无异,区别在于它们用EJB的Annotation进行了标记。

  • 持久化Bean有下列基本要求
  • 一个实体类,并将其标识为@Entity
  • 实体类必须要有主键,一般用@Id将其标识
  • persistence.xml文件主要是定义实体的映射配置信息。

开发流程

1.配置JBOSS数据源

  • copy数据库驱动到JBOSS_HOME/server/default/lib下。

  • copy JBOSS_HOME/docs/examles/jca/mysql-ds.xml到JBOSS_HOME/server/default/deploy目录下,并修改数据库用户名及密码

  • 在mysql中新建数据库


2.创建EJB项目,支持EntityBean



3.编写实体类,并注解映射规则

package com.roy.jpa.user;

import java.io.Serializable;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.transaction.Synchronization;

@Entity
public class User implements Serializable {
	@Id
	@GeneratedValue
	private int id;
	private String username;
	private String password;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
}

4.创建实体类对应的数据库表

  • 在JBOSS应用服务器中jpa是由hibernate来作为底层的实现,因此我们可以在persitence.xml中配置与hibernante相关的数据

<pre name="code" class="html"><?xml version="1.0" encoding="UTF-8"?>
<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="jpa_01" transaction-type="JTA">
  		<jta-data-source>java:/MySqlDS</jta-data-source>
  		<properties>
  			<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>
  			<property name="hibernate.hbm2ddl.auto" value="update"/>
  		</properties>
	</persistence-unit>
</persistence>

 

5.编写业务逻辑类,操作持久化数据

接口

package com.roy.jpa.user;

public interface UserManager {
	public void addUser1(User user);
}
实现

package com.roy.jpa.user;

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

@Stateless(name="UserManager")
@Remote
public class UserManagerImpl implements UserManager {

	@PersistenceContext(unitName="")
	private EntityManager em;

	public void addUser2(User1 user) {
		em.persist(user);
	}

}

6.建立客户端,进行调用

package com.roy.jpa;

import javassist.CtClass;

import javax.jms.Queue;
import javax.jms.QueueConnection;
import javax.jms.QueueConnectionFactory;
import javax.jms.QueueSender;
import javax.jms.QueueSession;
import javax.jms.Session;

import javax.jms.TextMessage;
import javax.naming.InitialContext;

import org.jboss.ejb3.MCKernelAbstraction.AlreadyInstantiated.Factory;

import com.roy.jpa.user.User;
import com.roy.jpa.user.User1;
import com.roy.jpa.user.UserManager;
import com.sun.xml.bind.CycleRecoverable.Context;

/**
 * @author yiqing
 *
 */
public class UserManagerClient {

	/**
	 * @param args
	 * @throws JMSException 
	 */
	public static void main(String[] args) throws Exception {
		InitialContext ctx = new InitialContext();
		UserManager userManager=(UserManager)ctx.lookup("UserManager/remote");
		for(int i=0;i<5;i++){
			User user=new User();
			user.setUsername("user"+i);
			userManager.addUser1(user);
		}
	}

}
实现效果:

会在ejb3数据库中生成数据表user,并插入数据。

总之这是一个持久化Bean开发的入门,从最基础的内容去操作怎样建立一个基本的实体映射。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值