程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Eclipse快速上手Hibernate--3. 利用XDoclet開發

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

編輯:關於JAVA

這篇文章是上兩篇文章《Eclipse快速上手Hibernate--1. 入門實例》和《Eclipse快速上手Hibernate--2. 利用Hbm映射文件開發》的延續,主要說的是如何利用XDocletHbm映射文件產生Hbm映射文件及數據表。可以參考XDoclet文檔中關於Hibernate的部分和夏昕編寫的《Hibernate開發指南》。同樣,這篇文章沒有過多談理論,只是給出了一個完整的實例加以說明。相關配置請參考上兩篇文章。 1. 創建項目 · 新建一個Java項目:HibernateBegin_3,注意選中“創建單獨的源文件夾和輸出文件夾”,同時添加“用戶庫”:hibernate。 2. 文件User.java · 新建一個類,包名:javamxj.hibernate,類名:User。然後在生成的代碼中添加變量,再利用“生成 Getter 和 Setter”,具體方式同《Eclipse快速上手Hibernate--1. 入門實例 》文章中的編輯User.Java的方式一樣。 · 添加HibernateDoclet標記,關於如何利用JBoss-IDE添加XDoclet標記的技巧參考《Eclipse快速上手EJB -- 1. Lomboz + JBoss-IDE 配置2 》文中的關於JBoss-IDE的部分,這是添加HibernateDoclet後的代碼:

User.Java

/* * 采用HibernateDoclet開發一個簡單的Hibernate實例 * 創建日期 2005-3-31 * @author javamxj(分享java快樂) * @link Blog: htpp://Javamxj.mblogger.cn * htpp://blog.csdn.Net/javamxj/ */package Javamxj.hibernate;/** * @hibernate.class table = "UserTable3" */public class User {private int id;private String username;private String password; /** * @hibernate.id * column = "ID" * generator-class = "hilo" */public int getId() {return id;}public void setId(int id) {this.id = id;}/** * @hibernate.property * length = "24" * not-null = "true" */public String getPassword() {return password;}public void setPassword(String password) {this.password = passWord;}/** * @hibernate.property * column = "用戶名" * length = "24" * not-null = "true" */public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}}

· 添加類標記“ @hibernate.class table ="UserTable3" ”用來生成數據庫的表UserTable3。· “ @hibernate.id"用來生成主鍵,注意這裡采用是hilo(高低位)生成器,需要額外的數據庫表保存主鍵生成歷史狀態。· “ @hibernate.property”描述POJO中屬性與數據庫表字段之間的映射關系。 ● 更新xdoclet-hibernate-module · 將XDoclet1.2.2中的xdoclet-hibernate-module-1.2.2.jar復制到JBossIDE-1.4.1-e30\eclipse\plugins\org.jboss.ide.eclipse.xdoclet.core_1.4.1目錄中,並且刪除其目錄下的xdoclet-hibernate-module-1.2.1.jar文件,然後在eclipse界面中,窗口 ->首選項 ->JBoss-IDE ->XDoclet ->Code Assist:點擊右側的“Refresh XDoclet Data”欄,即可完成更新。如果要替換其它的模塊,步驟與此類似。 3. 項目結構 · 將上篇文章中的“build.xml”復制到項目根目錄下,配置文件“hibernate.cfg.XML”復制到src目錄下,這時的項目結構如圖: 4. 運行任務 · 雙擊“generate-hbm”任務,然後按一下“F5”功能鍵刷新一下包“Javamxj.hibernate”,應該可以看到這個包下的“User.hbm.XML”。文件如下:

User.hbm.XML

● 生成數據表· 啟動MySQL,應該確定含有HibernateTest數據庫,不過這次不需要建立數據表了。· 雙擊“schemaexport”任務,然後刷新項目根目錄,會發現出產生的“schema-export.sql”文件。 schema-export.sqldrop table if exists UserTable3drop table if exists hibernate_unique_keycreate table UserTable3 ( ID integer not null, passWord varchar(24) not null, 用戶名 varchar(24) not null, primary key (ID))create table hibernate_unique_key ( next_hi integer )insert into hibernate_unique_key values ( 0 ) · 切換到數據庫中,會發現已經自動產生了數據表usertable3和hibernate_unique_key: 5. 測試程序 好了,將上篇文章中的test.java文件復制到包“javamxj.hibernate”下,然後右擊運行這個文件,可以看到數據表中生成的數據(圖中的數據是連續運行4次後產生的)。 6. Log4j Log4j是一個開放源碼的項目。它允許開發員以任意的間隔來控制日志的輸出。它通過設在外部的配置文件而達到運行時靈活的設置。 運行Log4j的庫文件都已經放到先前建立的hibernate庫文件夾中了,你只要找到下載的hibernate 2.1.8壓縮文件中的etc目錄,復制其中的log4j.propertIEs文件到項目中的src目錄即可。 運行test.Java,可以看到控制台的輸出語句似乎和先前沒有用Log4j沒有什麼區別。 現在打開log4j.propertIEs,找到“log4j.logger.net.sf.hibernate=info”語句,將其改成“log4j.logger.Net.sf.hibernate=warn”,再次運行test.java,可以看到控制台的輸出語句只有兩條了:21:03:55,687 WARN Configurator:125 - No configuration found. Configuring ehcache from ehcache-failsafe.xml found in the classpath: jar:file:/D:/java/Hibernate/lib/ehcache-0.9.jar!/ehcache-failsafe.XMLHibernate: insert into UserTable3 (passWord, 用戶名, ID) values (?, ?, ?)警告信息是指緩存配置文件沒有找到,以後用到時再談談這一點。 好了,hibernate結合Log4j的使用就是這麼簡單。關於Log4j的使用,比較簡單,網上的資料也很多,自己可以google一下。 小結: Hibernate的開發相當靈活,可以采用多種方式開發。 · 只有Hbm映射文件:映射文件---hbm2java----java---SchemaExport----數據表· 只有Java: java---XDoclet---Hbm----SchemaExport----數據表· 如果只有數據表呢?可以采用Middlegen: 數據表---Middlegen---Hbm----hbm2java----Java 關於利用Middlegen開發Hibernate的方法,可以參考夏昕編寫的《Hibernate開發指南》。 · 至於有關Hibernate的Eclipse插件,也有很多,可以看看《Working with Hibernate in Eclipse》。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved