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


2.  選中JBOSS AS4.2


3.  點擊ADD。進行JBOSS配置


4.  在Home Directory中。點擊Browser選擇JBOSS4.2的安裝文件夾,在JRE中配置JRE的安裝文件夾,點擊finish

在finish。就可以完畢對JBOSS在Eclipse中的配置。

2.2   新建EJB3.0projecttitan

1.        右鍵->New->Project


2.        選擇EJB Project->next


3.        Project  name為“titan”,Targetruntime選擇配置好的JBOSS4.2,EJB module version選擇3.0,然后finish。新的EJB3.0project創建成功。


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) {

     // TODO Auto-generated method stub

     manager.persist(cabin);

 

  }

 

  public Cabin findCabin(int id) {

     // TODO Auto-generated method stub

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

  }

 

}

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


配置例如以下:

<?xml version="1.0"encoding="UTF-8" ?>

<persistence 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">

<persistence-unit name="titan">

  <jta-data-source>java:/titan</jta-data-source>

<properties>

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

  </properties>

  </persistence-unit>

  </persistence>

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"?>

<datasources>

  <local-tx-datasource>

    <jndi-name>titan</jndi-name>

   <connection-url>jdbc:mysql://192.168.9.85:3306/titan</connection-url>

    <driver-class>com.mysql.jdbc.Driver</driver-class>

    <user-name>root</user-name>

    <password>root</password>

   <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name>

<metadata>

       <type-mapping>mySQL</type-mapping>

    </metadata>

  </local-tx-datasource>

</datasources>

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


3.  在數據庫里能夠查詢到對應的數據記錄,在控制台中能夠看到對應的查詢結果。

 

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM