国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

用hbm2java生成Hibernate類

2019-11-18 10:48:53
字體:
來源:轉載
供稿:網友

  對于治理Hiberante 映射文件,現有多種策略, 如:
  · 一切手工編寫
  · 把xdoclet標記放在你的java 類中, 讓其生成相應的映射文件。
  · 從SQL 模式(schema)生成Hibernate 映射文件和Java類。
  ·  手工編寫Hibernate 映射文件, 并且從Hibernate 映射生成Java類和SQL模式。
  ·  基于給定的SQL 模式,手工編寫Hibernate 映射文件,并利用hbm2java工具生成Java類。

  在本文中, 我們會著眼于上述方法中的最后那種方法。盡管這樣的選擇通常只是約略的嘗試, 但此方法的確在多數情況下有許多優勢:

  ·  Hibernate 映射集中在映射文件中,而不是把這些信息散布在Java源代碼中,這使維護變得更加輕易。在某些情況下,XDoclet annotation 不支持所有在Hibernate映射模式中可用的功能,你還可通過映射獲得更好的控制。

  · 數據庫模式可分開來維護,而不是從Java 類或Hibernate映射文件生成。這答應那些對Java/Hibernate不甚了解的數據庫治理員(DBA)對數據庫細節(索引,表空間,表類型等)本身有更好的控制。

  由映射文件生成Java類

  這種方式下,Hibernate映射文件主導著一切。所有的映射信息都集中在這些文件中, 就意味著不會在源代碼中使用annotations。所有的持久化類都由hbm2java工具生成。之后,那些類就不能被修改。
此過程如圖1所示。首先,你持有一組Hibernate映射文件。你或許也需要一個hbm2java配置文件,通常稱之為hbm2java.xml。利用這兩個引子,hbm2java工具為每個Hibernate映射文件生成一個或多個Java類。hbm2java配置文件對類生成過程的優化是有用的。

用hbm2java生成Hibernate類(圖一)


  圖1.用hbm2java工具將Hibernate映射生成Java類

        
  一個簡單類生成的例子

  讓我們從一個非常簡單的例子開始。假設我們想映射一個BOOK的簡單數據庫表,表結構定義如下:

Column                   Type                   Modifiers
------------+-----------------------+-----------
BOOK_ID       character(32)             not null
BOOK_TITLE character varying(80) not null
BOOK_ISBN   character varying(20) not null

  為了生成這個類, 我們可以使用以下的Hiberante映射文件。注重怎樣利用元屬性(meta-attriute)來添加注釋或優化類的生成。






    
        
            A Book business object.
            @author Duke
        
        
            
            
        


        
        
            
            The unique ISBN code for this book.
            
        

    




  使用此映射文件,hbm2java會生成看起來象這樣的類:
/**
* A Book business object.
* @author Duke
*/
public class Book {

    PRivate String id;
    private String name;
    private String isbn;

    public Book() {
    }

    public String getId() {
        return id;
    }

    private void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    /**
     * The unique ISBN code for this book.
     */
    public String getIsbn() {
        return isbn;
    }

    public void setIsbn(String isbn) {
        this.isbn = isbn;
    }
}
        

  為實際項目生成類

  實際上,hbm2java被設計成用來把Hibernate映射文件轉化成一組相應的Java類。假如你想在實際的應用程序中使用這種方法,很顯然,對于所有的Hibernate映射文件一次性生成類會更為方便。最好的方法是把類生成結合進你的自動化構建過程中。結合進Ant構建過程中使用Ant調用hbm2java是相當直接的。首先,你需要申明hbm2java任務(task)以便Ant可以調用它:
  
                     classname="net.sf.hibernate.tool.hbm2java.Hbm2JavaTask"
                classpathref="project.class.path"/>

  
  接著,你要用到這個任務。例如,通過寫一個目標(target)將源目錄中的所有*.hbm.xml文件生成源代碼。假設${src.hibernate}表示含有Hibernate映射文件的目錄,${src.generated}就是你想放源代碼的地方。這樣Ant任務看起來就象是:
                      descr                            from the Hibernate mapping files">
        
          
            
          

        

      

  
  用Maven 1 定制構建過程

  為結合進Maven (  1.0)構建過程,你需要修改maven.xml文件。Maven代碼就存放在這個文件中。腳本(script)主要檢查了Hibernate映射文件自上次類生成后是否已被更改(使用uptodate 標記),假如沒有,就調用此前所描述的Ant中的hbm2java任務。這種情況下,我們做了以下的假設:

  ·  hbm2java.xml配置文件應在src/hibernate目錄中
  ·  Hibernate映射文件應在src/hibernate目錄中
  ·  在src/generated/src/java目錄下生成Java類
  

    

    
        
    


                  targetfile="${maven.src.dir}/generated/hbm.jar">
      
    


               value="${hibernateBuild.uptodate}"/>

    
        
              
        

        
              

                                         classname="net.sf.hibernate.tool.hbm2java.Hbm2JavaTask"
                           classpathref="maven.dependency.classpath"/>

                                          output="${maven.src.dir}/generated/src/java" >
                  
                      
                  
              

              
                  
              
        

    

  

  用Maven 2 定制構建過程

  若碰巧你正使用Maven 2,事情就更簡單一點了。把maven-antrun-plugin插件添加到pom.xml文件中,而不是在maven.xml文件中使用完整的goals屬性(pre and post goals)。在此插件中的task那部分,你可以象上述那樣直接調用Ant 任務。

  4.0.0
  ...
  
    ...
    
      
          maven-antrun-plugin
          
            
              generate-sources
              
                
                                             classname="org.hibernate.tool.ant.HibernateToolTask"
                           classpathref="maven.dependency.classpath"/>

                  
                      
                          
                      

                  

                

              

              
                run
              

            

          

        

    

  

  
        
  在Hibernate 3中使用hbm2java

  Hbm2java 工具已經經受了Hibernate 3 的考驗。hbm2java任務與其它相似的任務一起,被集成進了新版Hibernate 工具集中的hibernatetool任務(撰寫此文時仍是alpha版)。Ant任務需要在類路徑(class path)中查找以下的.jar 文件:

  ·   hibernate-tools.jar
  ·   velocity-1.4.jar
  ·   velocity-tools-generic-1.4.jar
  ·   jtidy-r8-21122004.jar
  ·    hibernate3.jar
  ·   JDBC drivers

  這樣一來,Ant任務就要作如下申明:

            classname="org.hibernate.tool.ant.HibernateToolTask"
        classpathref="maven.dependency.classpath"/>


  最后,你在hibernatetool 任務中調用hbm2java任務,做法如下:
  
            classname="org.hibernate.tool.ant.HibernateToolTask"
        classpathref="maven.dependency.classpath"/>

    
        
            
                
            

        


        
    



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 喀什市| 玉林市| 鄂州市| 乌什县| 新巴尔虎左旗| 南城县| 油尖旺区| 垫江县| 贵南县| 盐山县| 安福县| 大竹县| 台南县| 满城县| 郯城县| 内江市| 宣威市| 霍林郭勒市| 金塔县| 武穴市| 垫江县| 梅河口市| 石屏县| 雅安市| 大石桥市| 察雅县| 徐汇区| 天等县| 陵川县| 云和县| 建始县| 资溪县| 新余市| 麻阳| 苗栗县| 博爱县| 侯马市| 霍城县| 江西省| 博白县| 休宁县|