Hibernate入門筆記3 - 用xdoclet生成hibernate映射文件

 用xdoclet生成hibernate映射文件

主要是跟着Eclipse快速上手Hibernate--3. 利用XDoclet開發一步一步走下去,不過也碰到一些問題。

新建項目 HibernateBegin_3

新建包 javamxj.hibernate

新建類 User.java 

package javamxj.hibernate;

/** 
 * 
@author javamxj
 * @hibernate.class table = "UserTable3" 
 
*/

public class User {    
     
private String id;    
     
private String username;    
     
private String password;
     
     
/**
     * 
@return Returns the id.
     * @hibernate.id column = "id" generator-class = "uuid.hex"
     * 
     
*/

     
public String getId() {        
         
return id;
         }

     
     
/**
     * 
@param id
     * The id to set.
     
*/

     
public void setId(String id) {        
         
this.id = id;
         }
    
     
     
/**
         * 
@return Returns the password.
         * @hibernate.property column = "password"
         
*/

     
public String getPassword() {        
         
return password;    
         }
    
     
     
/**
         * 
@param password
         * The password to set.
         
*/

     
public void setPassword(String password) {        
         
this.password = password;
         }
    
     
     
/**
         * 
@return Returns the username.
         * @hibernate.property column = "username"
         
*/

     
public String getUsername() {        
         
return username;    
         }


     
/**
         * 
@param username
         * The username to set.
         
*/

     
public void setUsername(String username) {        
         
this.username = username;
         }

     

}

 

新建配置文件  hibernate.cfg.xml   

hibernate.cfg.xml主要是數據庫連接部分,根據不同的數據庫配置下就可以了。        

<?xml version='1.0' encoding='GBK'?>
<!DOCTYPE hibernate-configuration    PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"    "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>    
<session-factory>       
<!-- 是否將運行期生成的SQL輸出到日誌以供調試 -->        
<property name="show_sql">true</property>                
<!-- SQL方言,這裏設定的是MySQL -->        
<property name="dialect">net.sf.hibernate.dialect.MySQLDialect</property>                
<!-- JDBC驅動程序-->        
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>                
<!-- JDBC URL, "?useUnicode=true&amp;characterEncoding=GBK" 表示使用GBK進行編碼-->        
<property name="connection.url">      jdbc:mysql://localhost:3306/hibernatetest?useUnicode=true&amp;characterEncoding=GBK        </property>                
<!--數據庫用戶名  -->        
<property name="connection.username">root</property>                
<!--數據庫密碼 -->        
<property name="connection.password">root</property>        
<!-- 指定User的映射文件-->        
<mapping resource="javamxj/hibernate/User.hbm.xml"/>           
</session-factory>
</hibernate-configuration>
 

新建 build.xml 

build.xml中根據不同情況修改一下 庫文件目錄 就可以了,其他的都可以不變,然後把build.xml拷到根目錄下再使用Ant工具就可以使用了。

<?xml version="1.0" encoding="GBK"?>
<project name="利用工具開發Hibernate" default="help" basedir=".">    
<!-- ******  環境設置,可以根據自己的實際配置自行更改 ***** -->    
<!-- 源文件目錄, 可以通過 項目->屬性->Java構建路徑 更改 -->    
    
<property name="src.dir" value="./src" />
<!-- 輸出的class文件目錄,可以通過 項目->屬性->Java構建路徑 更改 -->    
    
<property name="class.dir" value="./bin" />
<!-- 庫文件目錄  -->
    
<property name="lib.dir" value="D:/java/Hibernate/lib" />
<!-- 定義類路徑 -->    
    
<path id="project.class.path">        
        
<fileset dir="${lib.dir}">            
            
<include name="*.jar"/>        
        
</fileset>        
        
<pathelement location="${class.dir}" />    
    
</path>
<!-- ************************************************************** -->
<!-- 使用說明 -->
<!-- ************************************************************** -->    
    
<target name="help">        
        
<echo message="利用工具開發Hibernate" />        
        
<echo message="-----------------------------------" />        
        
<echo message="" />        
        
<echo message="提供以下任務:" />        
        
<echo message="" />        
        
<echo message="generate-code     --> 
            運行Hbm2Java,利用 hbm.xml 文件生成Java類文件"
 />        
        
<echo message="generate-hbm      --> 
            運行HibernateDoclet,生成 Hibernate 類的映射文件"
 />        
        
<echo message="schemaexport      --> 
            運行SchemaExport,利用 hbm.xml 文件生成數據表"
 />        
        
<echo message="" />    </target>
<!-- ************************************************************** -->
<!-- Hbm2Java 任務 -->
<!-- ************************************************************** -->    
    
<target name="generate-code" >        
        
<echo message="運行 Hbm2Java 任務, 
            利用 hbm.xml 文件生成Java類文件"
/>        
        
<taskdef name="hbm2java"             
            classname
="net.sf.hibernate.tool.hbm2java.Hbm2JavaTask"             
            classpathref
="project.class.path">        
        
</taskdef>        
        
<hbm2java output="${src.dir}">            
            
<fileset dir="${src.dir}">                
                
<include name="**/*.hbm.xml"/>            
            
</fileset>        
        
</hbm2java>    
    
</target>
<!-- ************************************************************** -->
<!-- HibernateDoclet 任務 -->
<!-- ************************************************************** -->    
    
<target name="generate-hbm" >        
        
<echo message="運行HibernateDoclet,生成 Hibernate 類的映射文件"/>        
        
<taskdef name="hibernatedoclet"             
            classname
="xdoclet.modules.hibernate.HibernateDocletTask"             
            classpathref
="project.class.path">        
        
</taskdef>        
        
<hibernatedoclet destdir="${src.dir}"             
            excludedtags
="@version,@author,@todo" force="true" encoding="GBK"             
            verbose
="true">            
            
<fileset dir="${src.dir}">                
                
<include name="**/*.java"/>            
            
</fileset>            
            
<hibernate version="2.0" xmlencoding="GBK" />        
        
</hibernatedoclet>    </target>
<!-- ************************************************************** -->
<!-- SchemaExport 任務 -->
<!-- ************************************************************** -->    
    
<target name="schemaexport">        
        
<echo message="運行SchemaExport,利用 hbm.xml 文件生成數據表"/>        
        
<taskdef name="schemaexport"             
            classname
="net.sf.hibernate.tool.hbm2ddl.SchemaExportTask"             
            classpathref
="project.class.path">        
        
</taskdef>        
        
<schemaexport config="${src.dir}/hibernate.cfg.xml" quiet="no"             
            text
="no" drop="no" output="schema-export.sql">        
        
</schemaexport>    
    
</target>
</project>

 3個文件各自放在正確的路徑,馬上就可以自動生成hibernate映射文件了。

使用ANT工具,雙擊“generate-hbm”任務,然後按一下“F5”功能鍵刷新一下包“javamxj.hibernate”,應該可以看到這個包下的“User.hbm.xml”。

生成數據表

·  啓動MySql,應該確定含有HibernateTest數據庫,不過這次不需要建立數據表了。
·  雙擊“schemaexport”任務,然後刷新項目根目錄,會發現出產生的“schema-export.sql”文件。 

 需要測試的話,使用 Test.java(Eclipse快速上手Hibernate--3. 利用XDoclet開發)就可以測試下就可以了。

 

需要注意的是,由於Eclipse快速上手Hibernate--3. 利用XDoclet開發寫的時間有點早,其中使用的是Hibernate2,而現在已經有Hibernate3了,由於Hibernate3和Hibernate2其中的文件框架有點不大一樣,所以如果使用Hibernate3就要改很多地方。

 

 

學習資源

Eclipse快速上手Hibernate--3. 利用XDoclet開發

用xdoclet生成hibernate映射文件

怎麼用XDOCLET自動生成映射文件

 

 

 


發佈了20 篇原創文章 · 獲贊 2 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章