首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Hibernate 3 進階特性 (三):Middlegen-Hibernate 從資料庫表逆向生成映射文件實戰

     編輯:Java 相關知識

Hibernate 開發中,從現有資料庫表結構自動生成映射文件 (*.hbm.xml) 可大幅提升效率。本文以 MySQL 為例,詳細演示使用 Middlegen-Hibernate (基於 Ant) 完成逆向工程的完整配置與操作流程。

準備工作

  1. 下載 Middlegen-Hibernate 並解壓。
  2. 確保資料庫已建表,示例表 user:
    CREATE TABLE user (
      id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
      name VARCHAR(100) NOT NULL DEFAULT '',
      age INT
    );
    
  3. 將 MySQL JDBC 驅動 (如 mysql-connector-java-3.0.14-production-bin.jar) 放入 Middlegen lib 目錄。

配置資料庫連線資訊

編輯 config/database/mysql.xml,修改以下屬性:

<property name="database.driver" value="com.mysql.jdbc.Driver"/>
<property name="database.url" value="jdbc:mysql://localhost/demo"/>
<property name="database.userid" value="your_username"/>
<property name="database.password" value="your_password"/>
<property name="database.schema" value=""/>
<property name="database.catalog" value=""/>

配置 Ant 建構文件

編輯根目錄 build.xml:

  1. 引入資料庫配置:<!ENTITY database SYSTEM "file:./config/database/mysql.xml">
  2. 設置專案名:<property name="name" value="HibernateDemo"/>
  3. 設置生成輸出目錄:<property name="build.gen-src.dir" value="${build.dir}/gen-src"/>
  4. 配置 <hibernate> 任務關鍵屬性:
    <hibernate
      destination="${build.gen-src.dir}"
      package="onlyfun.caterpillar"
      genXDocletTags="false"
      genIntegratedCompositeKeys="false"
      javaTypeMapper="middlegen.plugins.hibernate.HibernateJavaTypeMapper"
    />
    

執行生成與結果檢視

  1. 在 Middlegen 目錄下運行 ant。
  2. 成功後,build/gen-src/ 目錄生成映射文件,如 User.hbm.xml:
    <hibernate-mapping>
      <class name="onlyfun.caterpillar.User" table="user">
        <id name="id" type="java.lang.Integer" column="id">
          <generator class="native"/>
        </id>
        <property name="name" type="java.lang.String" column="name" not-null="true" length="100"/>
        <property name="age" type="java.lang.Integer" column="age" length="11"/>
      </class>
    </hibernate-mapping>
    
  3. GUI 介面 (若啟用) 可進一步調整各欄位屬性 (主鍵策略、關聯等) 點擊 Generate 重新生成。

注意事項與後續維護

  • 生成文件僅為起點,通常需手動微調 (如關聯關係、繼承策略、快取配置)。
  • 資料庫結構變更時,可重新生成並合併差異,或直接維護映射文件。
  • 版本控制建議納入生成文件,便於追蹤變更。

參考資源

Hibernate 2 時代經典教學資源:JavaWorld Hibernate 專題

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved