EJB-持久化Bean开发

来源:互联网 发布:淘宝延期收货是几天 编辑:程序博客网 时间:2024/06/05 21:26

持久化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;@Entitypublic class User implements Serializable {@Id@GeneratedValueprivate 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")@Remotepublic 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 0
原创粉丝点击