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

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

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

    走在架構(gòu)師的大道上 Jack.Wang's home

    Java, C++, linux c, C#.net 技術(shù),軟件架構(gòu),領(lǐng)域建模,IT 項(xiàng)目管理 Dict.CN 在線(xiàn)詞典, 英語(yǔ)學(xué)習(xí), 在線(xiàn)翻譯

    BlogJava 首頁(yè) 新隨筆 聯(lián)系 聚合 管理
      195 Posts :: 3 Stories :: 728 Comments :: 0 Trackbacks

            我用的是 mysql 數(shù)據(jù)庫(kù), EJB3.0 相對(duì)于2.0 變化蠻大的,真的是迫于 Spring+Hibernate 的逼式,ejb 3.0 已經(jīng)出現(xiàn)幾年了,自從她輕裝上陣,也不知道現(xiàn)在的應(yīng)用情況如何,不過(guò)本人認(rèn)為, ejb 3.0 是很有市場(chǎng)的。它的簡(jiǎn)潔和方便無(wú)疑是程序員的最佳選擇!

    1. 配置 JBOSS 數(shù)據(jù)源:
         如果你用默認(rèn)的數(shù)據(jù)源就不需要這么改動(dòng),默認(rèn)的是 Hsqldb。為了換成 mysql,而且把數(shù)據(jù)源的 JNDI 改成自己的名字,你需要如下配置:
          一、拷貝驅(qū)動(dòng)    
                 我啟動(dòng)的是 default !           

                 所以請(qǐng)保證JBOSS_INSTALL\server\default\lib下面有mysql jdbc driver

          二、修改 JBOSS 配置文件

             1、將文件JBOSS_INSTALL/docs/examples/jca/mysql-ds.xml拷貝到JBOSS_INSTALL\server\default\deploy下
                   面
           
                  修改如下: 
               
        

                 <jndi-name>MySqlDS</jndi-name>
              
                     <connection-url>jdbc:mysql://localhost:3306/jbossdb</connection-url> 
               
                     <driver-class>com.mysql.jdbc.Driver</driver-class> 
               
                     <user-name>root</user-name> 
               
                     <password>123</password>

            
             2、將文件JBOSS_INSTALL/docs/examples/jms/mysql-jdbc2-service.xml拷貝到
                   JBOSS_INSTALL/server/default/deploy/jms下

     

                  修改如下: 
                 

                  <mbean code="org.jboss.mq.pm.jdbc2.PersistenceManager"
                
                       name="jboss.mq:service=PersistenceManager">
                
                   <depends optional-attribute-  
                    name="ConnectionManager">jboss.jca:service=DataSourceBinding,name=MySqlDS</depends>
                
                   <attribute name="SqlProperties">
                

     

     

                  另外這個(gè)文件71行修改:

                    CREATE_TX_TABLE = CREATE TABLE JMS_TRANSACTIONS ( TXID INTEGER PRIMARY KEY NOT
                    NULL )  

     

             3、修改JBOSS_INSTALL/server/default/conf/standardjaws.xml如下: 
               

                  <datasource>java:/MysqlDS</datasource>
              
                <!--   <type-mapping>Hypersonic SQL</type-mapping> -->
              
                      <type-mapping>mySQL</type-mapping>  

               
             4、修改JBOSS_INSTALL/server/default/deploy/jms/hsqldb-jdbc-state-service.xml如下: 
             
             <depends optional-attribute-
                 name="ConnectionManager">jboss.jca:service=DataSourceBinding,name=MysqlDS</depends>

             
             5、修改JBOSS_INSTALL/server/default/deploy/ejb-deployer.xml如下: 
             
               <mbean code="org.jboss.ejb.txtimer.DatabasePersistencePolicy"
                 name="jboss.ejb:service=EJBTimerService,persistencePolicy=database">
            
                 <!-- DataSource JNDI name -->
            
                 <depends optional-attribute-name="DataSource">jboss.jca:service=DataSourceBinding,name=MysqlDS</depends>
            
                 <!-- The plugin that handles database persistence -->
            
                 <attribute
                  name="DatabasePersistencePlugin">org.jboss.ejb.txtimer.GeneralPurposeDatabasePersistencePlugin</attribute>
            
               </mbean>  

             
             6、修改JBOSS_INSTALL/server/default/config/ standardjbosscmp-jdbc.xml如下: 
             
           
        <defaults> <datasource>java:/MysqlDS</datasource>  

             
             7、修改JBOSS_INSTALL/server/default/deploy/ uuid-key-generator.sar下面的META-INF下面jboss-service.xml如
                   下: 
       

         
              <!-- DataSource JNDI name -->

              <depends optional-attribute-name="DataSource">jboss.jca:service=DataSourceBinding,name=MysqlDS</depends>


             好了數(shù)據(jù)源配置方面已經(jīng)完成!可以開(kāi)始動(dòng)手開(kāi)發(fā)了!

    2.MyEclipse6 開(kāi)發(fā) EntityBean

           
           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="testUnit">
             <jta-data-source>java:/MysqlDS</jta-data-source>
             <properties>
              <property name="hibernate.hbm2ddl.auto" value="create-drop" />//create-drop 如果有表結(jié)構(gòu)可以換成 update!
                                                                                                                  //相關(guān)詳細(xì)內(nèi)容請(qǐng)看書(shū)
             </properties>
            </persistence-unit>
           </persistence>
    3.PersonDAO 接口
           
       
        import java.util.Date;
           import java.util.List;
          
           import org.jpa.test.Person;
          
           public interface PersonDAO {
            public boolean insertPerson(String name, boolean sex, short age,
              Date birthday);
          
            public String getPersonNameByID(int personid);
          
            public boolean updatePerson(Person person);
          
            public Person getPersonByID(int personid);
          
            public List getPersonList(int max, int whichpage);
           }
    4.PersonDAOBean 無(wú)狀態(tài)的會(huì)話(huà)Bean

     

           
       

        package org.jpa.dao;
          
           import java.util.Date;
           import java.util.List;
          
           import javax.ejb.Remote;
           import javax.ejb.Stateless;
           import javax.persistence.EntityManager;
           import javax.persistence.PersistenceContext;
           import javax.persistence.Query;
          
           import org.jpa.test.Person;
          
           @Stateless
           @Remote( { PersonDAO.class })
           public class PersonDAOBean implements PersonDAO {
            @PersistenceContext
            protected EntityManager em;
          
            public String getPersonNameByID(int personid) {
             Person person = em.find(Person.class, Integer.valueOf(personid));
             return person.getName();
            }
          
            public boolean insertPerson(String name, boolean sex, short age,
              Date birthday) {
             try {
              Person person = new Person();
              person.setName(name);
              person.setSex(sex);
              person.setAge(Short.valueOf(age));
              person.setBirthday(birthday);
              em.persist(person);
             } catch (Exception e) {
              e.printStackTrace();
              return false;
             }
             return true;
            }
          
            public Person getPersonByID(int personid) {
             return em.find(Person.class, Integer.valueOf(personid));
            }
          
            public boolean updatePerson(Person person) {
             try {
              em.merge(person);
             } catch (Exception e) {
              e.printStackTrace();
              return false;
             }
             return true;
            }
          
            public List getPersonList(int max, int whichpage) {
             try {
              int index = (whichpage - 1) * max;
              Query query = em.createQuery("from Person p order by personid asc");
              List list = query.setMaxResults(max).setFirstResult(index)
                .getResultList();
              em.clear();// 分離內(nèi)存中受EntityManager管理的實(shí)體bean,讓VM進(jìn)行垃圾回收
              return list;
             } catch (Exception e) {
              e.printStackTrace();
              return null;
             }
            }
           }
    5.類(lèi)似 Hibernate  中開(kāi)發(fā) POJO 一樣開(kāi)發(fā) EntityBean,不同的就是把 ORM 的 mapping file 改用在 code 中加入注釋?zhuān)Ч?lèi)似!如果你學(xué)習(xí)過(guò) jdo,ojb,hibernate,ibatis 等等你很容易上手!

      

         package org.jpa.test;
          
           import java.io.Serializable;
           import java.util.Date;
          
           import javax.persistence.Column;
           import javax.persistence.Entity;
           import javax.persistence.GeneratedValue;
           import javax.persistence.GenerationType;
           import javax.persistence.Id;
           import javax.persistence.Table;
           import javax.persistence.Temporal;
           import javax.persistence.TemporalType;
          
           @SuppressWarnings("serial")
           @Entity
           @Table(name = "person")
           public class Person implements Serializable {
            private Integer personid;
            private String name;
            private boolean sex;
            private Short age;
            private Date birthday;
          
            @Id
            @GeneratedValue(strategy = GenerationType.IDENTITY)
            public Integer getPersonid() {
             return personid;
            }
          
            public void setPersonid(Integer personid) {
             this.personid = personid;
            }
          
            @Column(name = "PersonName", nullable = false, length = 32)
            public String getName() {
             return name;
            }
          
            public void setName(String name) {
             this.name = name;
            }
          
            @Column(nullable = false)
            public boolean getSex() {
             return sex;
            }
          
            public void setSex(boolean sex) {
             this.sex = sex;
            }
          
            @Column(nullable = false)
            public Short getAge() {
             return age;
            }
          
            public void setAge(Short age) {
             this.age = age;
            }
          
            @Temporal(value = TemporalType.DATE)
            public Date getBirthday() {
             return birthday;
            }
          
            public void setBirthday(Date birthday) {
             this.birthday = birthday;
            }
           }
          





    本博客為學(xué)習(xí)交流用,凡未注明引用的均為本人作品,轉(zhuǎn)載請(qǐng)注明出處,如有版權(quán)問(wèn)題請(qǐng)及時(shí)通知。由于博客時(shí)間倉(cāng)促,錯(cuò)誤之處敬請(qǐng)諒解,有任何意見(jiàn)可給我留言,愿共同學(xué)習(xí)進(jìn)步。
    posted on 2008-06-03 22:21 Jack.Wang 閱讀(3815) 評(píng)論(4)  編輯  收藏 所屬分類(lèi): 開(kāi)發(fā)技術(shù)

    Feedback

    # re: JBOSS+EJB3之Entity 開(kāi)發(fā)實(shí)例 2008-06-04 09:10 dancer
    前面的配置說(shuō)明下是用來(lái)做什么的比較好,讓人感覺(jué)看后不明白個(gè)所以然!~~  回復(fù)  更多評(píng)論
      

    # re: JBOSS+EJB3之Entity 開(kāi)發(fā)實(shí)例 2008-06-04 09:44 Jack.Wang
    呵呵,昨天不小心發(fā)布了草稿! 不好意思!  回復(fù)  更多評(píng)論
      

    # re: JBOSS+EJB3之Entity 開(kāi)發(fā)實(shí)例 2008-06-04 10:06 懶人
    @Jack.Wang
    暈  回復(fù)  更多評(píng)論
      

    # re: JBOSS+EJB3之Entity 開(kāi)發(fā)實(shí)例 2012-09-04 17:35 jpa開(kāi)發(fā)者
    如果是sql2008如何操作呢  回復(fù)  更多評(píng)論
      

    主站蜘蛛池模板: 亚洲国产精品嫩草影院久久 | 四虎成人免费影院网址| 亚洲Av熟妇高潮30p| 三上悠亚电影全集免费| 亚洲中文字幕无码爆乳av中文| 免费看内射乌克兰女| 免费在线观看一级毛片| 特级aa**毛片免费观看| 亚洲婷婷国产精品电影人久久 | 你懂的免费在线观看| 亚洲av中文无码乱人伦在线r▽| 国产一级一毛免费黄片| 亚洲色成人中文字幕网站| 一级毛片在线观看免费| 亚洲视频一区网站| 天天拍拍天天爽免费视频| 最新亚洲人成无码网站| 国产午夜亚洲精品理论片不卡| 你懂的网址免费国产| 亚洲一区二区在线免费观看| 真人做人试看60分钟免费视频| 亚洲中文字幕无码久久2020 | 亚洲裸男gv网站| 国偷自产一区二区免费视频| 久久亚洲精品国产精品| 啦啦啦中文在线观看电视剧免费版 | 亚洲卡一卡2卡三卡4麻豆| 日韩av无码成人无码免费| 欧美日韩亚洲精品| 中文字幕亚洲乱码熟女一区二区| 国产精品白浆在线观看免费| xxx毛茸茸的亚洲| 亚洲精品老司机在线观看| 国产在线观看免费视频软件| 亚洲视频在线观看2018| 亚洲а∨天堂久久精品| 日韩人妻一区二区三区免费| 亚洲精品无码久久久久YW| 亚洲精品国产精品乱码不99 | 日本亚洲免费无线码 | 一边摸一边桶一边脱免费视频 |