java ejb开发_EJB3.0高速入门项目开发步骤

EJB3.0开发步骤

1.   开发环境

IDE开发工具:Eclipse Java EE IDE for Web Developers

EJB容器:jboss-4.2.3.GA

后台数据库:MysQL5.1

2.   开发步骤

2.1   在Eclipse中配置jboss-4.2.3.GA

1.  点击小三角,选中New server

6d9084cc644f7cbcd80cb63336643e4a.png

2.  选中JBOSS AS4.2

60a0f09f45df2c9114eb6b861d5284f0.png

3.  点击ADD。进行JBOSS配置

d63da47f8173deaa4ec45448f0876dda.png

4.  在Home Directory中。点击Browser选择JBOSS4.2的安装文件夹,在JRE中配置JRE的安装文件夹,点击finish

在finish。就可以完毕对JBOSS在Eclipse中的配置。

2.2   新建EJB3.0projecttitan

1.        右键->New->Project

f2c4639aa0a3e0422eaf604374890e99.png

2.        选择EJB Project->next

d36e57bedc38a7394dc1712541af98e1.png

3.        Project  name为“titan”,Targetruntime选择配置好的JBOSS4.2,EJB module version选择3.0,然后finish。新的EJB3.0project创建成功。

Center

2.3   项目开发

2.3.1 开发Cabin实体Bean

package com.titan.domain;

import javax.persistence.Column;

import javax.persistence.Entity;

import javax.persistence.Id;

import javax.persistence.Table;

@Entity//告知persistence provider这是一个映射到数据的实体类,而且能够受管于EntityManager服务。

@Table(name="CABIN")//告知EJB容器。beanclass 应该被映射到哪一张数据库表。

public classCabin implementsjava.io.Serializable{

/**

*

*/

private staticfinal longserialVersionUID = 1L;

/**

*

*/

private intid;

private String name;

private intdeckLevel;

private intshipId;

private intbedCount;

@Id//表示CAbin实体的主键,主键标志是必须的

@Column(name="ID")//定义怎样将成员属性映射到数据库表CABIN中的字段。并不是是必须的

public intgetId() {

return id;

}

public voidsetId(int id) {

this.id =id;

}

@Column(name="NAME")

public String getName() {

return name;

}

public voidsetName(String name) {

this.name =name;

}

@Column(name="DECK_LEVEL")

public intgetDeckLevel() {

return deckLevel;

}

public voidsetDeckLevel(int deckLevel) {

this.deckLevel= deckLevel;

}

@Column(name="SHIP_ID")

public intgetShipId() {

returnshipId;

}

public voidsetShipId(int shipId) {

this.shipId= shipId;

}

@Column(name="BED_COUNT")

public intgetBedCount() {

return bedCount;

}

public voidsetBedCount(int bedCount) {

this.bedCount= bedCount;

}

}

2.3.2开发远程接口TravelAgentRemote

package com.titan.travelagent;

import javax.ejb.Remote;

import com.titan.domain.Cabin;

@Remote//表示这是一个远程接口

public interfaceTravelAgentRemote {

public voidcreateCabin(Cabin cabin);

public Cabin findCabin(int id);

}

2.3.3开发远程接口的实现Bean类TravelAgentBean(StatelessBean)

package com.titan.travelagent;

import javax.ejb.Stateless;

import javax.persistence.EntityManager;

import javax.persistence.PersistenceContext;

import com.titan.domain.Cabin;

@Stateless//表示这是一个无状态sessionbean

public classTravelAgentBean implementsTravelAgentRemote {

//@PersistenceContext告知EJB容器,必须用一个EntityManager实例来设置manager数据成员。

@PersistenceContext(unitName="titan")

privateEntityManager manager;

public voidcreateCabin(Cabin cabin) {

//TODOAuto-generated method stub

manager.persist(cabin);

}

public Cabin findCabin(int id) {

//TODOAuto-generated method stub

return manager.find(Cabin.class, id);

}

}

2.3.4在META-INF下创建文件persistence.xml文件

78fa3107e23d07519853e7f43c7082de.png

配置例如以下:

?>

version="1.0"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/persistencehttp://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">

name="titan">

java:/titan

name="hibernate.hbm2ddl.auto"value="create-drop"/>

2.3.5在com.titan.clients包下开发客户端程序

packagecom.titan.clients;

importjavax.naming.InitialContext;

importjavax.naming.Context;

importjavax.naming.NamingException;

importjavax.rmi.PortableRemoteObject;

importcom.titan.domain.Cabin;

importcom.titan.travelagent.TravelAgentRemote;

importjava.util.Properties;

importjavax.rmi.PortableRemoteObject;

public classClient {

public static void main(String[]args){

try {

Context jndiContext=getInitialContext();

Objectref=jndiContext.lookup("TravelAgentBean/remote");

TravelAgentRemotedao=(TravelAgentRemote)

PortableRemoteObject.narrow(ref, TravelAgentRemote.class);

Cabin cabin_1=new Cabin();

cabin_1.setId(1);

cabin_1.setName("MasterSuite");

cabin_1.setDeckLevel(1);

cabin_1.setShipId(1);

cabin_1.setBedCount(3);

dao.createCabin(cabin_1);

Cabin cabin_2=dao.findCabin(1);

System.out.println(cabin_2.getId());

System.out.println(cabin_2.getName());

System.out.println(cabin_2.getShipId());

System.out.println(cabin_2.getDeckLevel());

System.out.println(cabin_2.getBedCount());

} catch (ClassCastException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (NamingException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

private static Context getInitialContext()throws NamingException {

// TODO Auto-generated method stub

Properties p=new Properties();

//...制定专有EJB厂商的JNDI属性

p.put(Context.INITIAL_CONTEXT_FACTORY,"org.jnp.interfaces.NamingContextFactory");

p.put(Context.PROVIDER_URL, "://localhost:1099");

return newjavax.naming.InitialContext(p);

}

}

至此项目的client开发完毕。

2.4   配置MySql的datasource

1.  将mysql-connector-java-5.1.16.jar包放置到JBOSS_HOME\server\default\lib文件夹下.

2.  将配置好的mysql-ds.xml放到JBOSS_HOME\server\default\deploy文件夹下。配置例如以下:

xmlversion="1.0" encoding="UTF-8"?>

titan

jdbc:mysql://192.168.9.85:3306/titan

com.mysql.jdbc.Driver

root

root

org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter

mySQL

2.4.1创建数据库

1、创建数据库titan

2、创建数据表cabin

DROP TABLE IFEXISTS `cabin`;

CREATE TABLEcabin (

ID int(11) NOT NULL,

NAME varchar(255) DEFAULT NULL,

DECK_LEVEL int(11) DEFAULT NULL,

SHIP_ID int(11) DEFAULT NULL,

BED_COUNT int(11) DEFAULT NULL,

PRIMARY KEY (`ID`)

)

3.   执行

1.  将titanproject公布到JBOSS。启动JBOSS

2.  打开client程序。右键->Run As->Java Application

96f90822a901a80d116c64abc6fdf709.png

3.  在数据库里能够查询到对应的数据记录,在控制台中能够看到对应的查询结果。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值