<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 312, 文章 - 14, 評論 - 1393, 引用 - 0
    數據加載中……

    eclipse + JBoss 5 + EJB3開發指南(6):編寫第一個實體Bean程序

    本文為原創,如需轉載,請注明作者和出處,謝謝!

    上一篇:eclipse + JBoss 5 + EJB3開發指南(5):使用配置文件發布Session Bean

         EJB3容器通過EntityManager對象管理實體Bean,該類最主要的功能就是在記錄和JavaBean之間進行互相映射。例如,我們從數據庫中查出一條記錄,這條記錄有field1和field2兩個字段,假設有一個JavaBean,也包含了field1和field2屬性。那么EntityManager可以將這條記錄中的值映射到JavaBean的field1和field2屬性中。也就是說,在數據庫中的一條記錄就對應于一個JavaBean的對象實例。下面將給出一個簡單的例子來演示如何來實現一個應用實體Bean的程序。在這個例子中使用無狀態的session bean通過EntityManager對象從數據表中查找一條記錄,將該記錄映射成實體Bean的對象實例,最后通過session bean的方法返回該記錄的某個字段值。
       
        表名:t_users
        表中的字段和記錄
        id    name    password_md5
         1     bill    TaokQpoNJQb02eafO/JgYw==

    一、配置JBoss的數據庫連接池

    在<jboss安裝目錄>\server\default\deploy目錄中建立一個mysql-ds.xml文件,內容如下:
    <?xml version="1.0" encoding="UTF-8"?>
    <datasources>
      
    <local-tx-datasource>
        
    <jndi-name>MyPIM</jndi-name>
        
    <connection-url>jdbc:mysql://localhost:3306/pim</connection-url>
        
    <driver-class>com.mysql.jdbc.Driver</driver-class>
        
    <user-name>root</user-name>
        
    <password>1234</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>

        mysql-ds.xml文件用于配置mysql的數據源。實際上,該文件可以在<jboss安裝目錄>\docs\examples\jca目錄中找到,讀者只需要將數據庫名、用戶名和密碼以及jndi名改成自己的就可以了。最后將修改后的mysql-ds.xml文件復制到deploy目錄中(必須叫這個文件名)。
        連接mysql數據庫需要一個jdbc驅動(jar文件),將該文件復制到<jboss安裝目錄>\server\default\lib目錄中。

    二、編寫實體Bean

        User類是一個實體Bean,代碼如下:
    package entity;

    import javax.persistence.Column;
    import javax.persistence.Entity;
    import javax.persistence.Id;
    import javax.persistence.Table;

    @Entity
    @Table(name 
    = "t_users")
    public class User 
    {
        
    private int id;
        
    private String name;
        
    private String password;
        @Id
        
    public int getId()
        {
            
            
    return id;
        }
        
    public void setId(int id)
        {
            
    this.id = id;
        }
        
    public String getName()
        {
            
    return name;
        }
        
    public void setName(String name)
        {
            
    this.name = name;
        }
        @Column(name 
    = "password_md5")
        
    public String getPassword()
        {
            
    return password;
        }
        
    public void setPassword(String password)
        {
            
    this.password = password;
        }
        
    }

    三、配置persistence.xml文件

       
    在META-INF目錄中建立一個persistence.xml文件,代碼如下:

    <?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="myentity">
            
    <jta-data-source>java:/MyPIM</jta-data-source>
            
    <properties>
                
    <property name="hibernate.hbm2ddl.auto" value="none" />
                
    <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect" />
            
    </properties>
        
    </persistence-unit>
    </persistence>

        其中<jta-data-source>元素的值就是mysql-ds.xml文件中配置的數據源名。如果使用注釋配置session bean,META-INF目錄下只有兩個文件即可:MANIFEST.MF和persistence.xml。

    四、在session bean中調用實體bean

       
    package service;

    import java.util.ArrayList;
    import java.util.List;
    import javax.ejb.Stateless;
    import javax.persistence.EntityManager;
    import javax.persistence.PersistenceContext;
    import entity.User;

    @Stateless
    public class UserBean implements UserBeanRemote
    {
        @PersistenceContext(unitName
    ="myentity")
        
    protected EntityManager em;

        @Override
        
    public String getPassword()
        {

            User user 
    = em.find(User.class1);       
            
    return user.getPassword();
        }
    }

        其中UserBeanRemote為遠程接口。要注意的是,@PersistenceContext注釋的unitName屬性值必須和persistence.xml文件中的<persistence-unit>元素的name屬性值相同。

    五、客戶端調用session bean

    InitialContext ctx = new InitialContext();
    UserBeanRemote
    userBeanRemote = (UserBeanRemote) ctx.lookup("MyEnterprise/UserBean/remote");
    System.out.println(userBeanRemote.getPassword(
    ));

        由于本書的程序都在一個ear包中,因此,默認的jndi名是MyEnterprise/UserBean/remote,如果直接發布包含EJB的jar包,默認的jndi名稱為UserBean/remote。
        運行上面的代碼后,將輸出如下的字符串:

    TaokQpoNJQb02eafO/JgYw==

    下一篇:eclipse + JBoss 5 + EJB3開發指南(7):實現Entity Bean的一對一(one-to-one)映射





    Android開發完全講義(第2版)(本書版權已輸出到臺灣)

    http://product.dangdang.com/product.aspx?product_id=22741502



    Android高薪之路:Android程序員面試寶典 http://book.360buy.com/10970314.html


    新浪微博:http://t.sina.com.cn/androidguy   昵稱:李寧_Lining

    posted on 2009-05-29 22:02 銀河使者 閱讀(2597) 評論(0)  編輯  收藏 所屬分類: java 原創ejb3JBoss

    主站蜘蛛池模板: 亚洲免费二区三区| 日韩免费观看一区| 暖暖免费高清日本一区二区三区 | 久久亚洲色WWW成人欧美| 国产在线a免费观看| 亚洲jjzzjjzz在线播放| 成人免费AA片在线观看| 亚洲人成电影网站| 成人黄软件网18免费下载成人黄18免费视频 | 老司机亚洲精品影院| 日本卡1卡2卡三卡免费| 久久亚洲免费视频| 亚洲一区免费视频| 亚洲中文字幕无码亚洲成A人片| 四虎影视免费在线| 污视频网站免费在线观看| 国产亚洲精品线观看动态图| 最近免费字幕中文大全| 久久亚洲精品成人av无码网站| 91精品国产免费久久国语麻豆| 亚洲区精品久久一区二区三区| 女性无套免费网站在线看| 美女被艹免费视频| 亚洲啪啪综合AV一区| 最近免费2019中文字幕大全| 一本色道久久88亚洲精品综合 | 在线免费观看一级毛片| 成人在线免费视频| 亚洲成人在线网站| 成年性羞羞视频免费观看无限| 美女露100%胸无遮挡免费观看| 亚洲色无码专区在线观看| 免费看黄视频网站| 无码免费又爽又高潮喷水的视频| 亚洲成A人片在线观看无码不卡| 最近免费最新高清中文字幕韩国| 亚洲.国产.欧美一区二区三区| 精品国产亚洲一区二区三区| 一个人看www在线高清免费看| 日日狠狠久久偷偷色综合免费 | 四虎AV永久在线精品免费观看|