-- hibernate應用配置說明 -- Middlegen
************************************
ant配置
************************************
下載ant,解壓
將ant考到c:跟目錄
環境變數裡加上ANT_HOME=c://ant
PATH=c://ant//bin;
進入命令列模式,輸入: ant
如:
C://>ant
Buildfile: build.xml does not exist!
Build failed
出現該顯示,說明ant已配置成功
************************************
Middlegen hibernate配置
************************************
是hibernate的O/R Mapping工具
http://hibernate.bluemars.net/98.html
可以產生*.hbm.xml檔案,是hibernate所需的對應檔
下載Middlegen Hibernate,解壓,如D://hiber//Middlegen-Hibernate-r1//
進入目錄,
【設定資料庫,以MS SQLSERVER為例,JDBC驅動為JSQL Connect(www.j-netdirect.com)】
1、進入/config/database/目錄
2、將JSQLConnect.jar驅動考到/lib/目錄
3、編輯mssql.xml檔案,如下
<property name="database.script.file" value=""/>
<property name="database.driver.file" value="${lib.dir}/JSQLConnect.jar"/>
<property name="database.driver" value="com.jnetdirect.jsql.JSQLDriver"/>
<property name="database.url" value="jdbc:JSQLConnect://資料庫伺服器名或IP/database=要操作的資料庫名"/>
<property name="database.userid" value="資料庫使用者名稱"/>
<property name="database.password" value="資料庫密碼"/>
<property name="database.schema" value=""/>
<property name="database.catalog" value=""/>
<property name="jboss.datasource.mapping" value="MS SQLSERVER2000"/>
【編輯Middlegen hibernate配置】
1、編輯build.xml
2、修改資料庫預設檔案,找到這行,大概在22行左右
<!DOCTYPE project [
<!--ENTITY database SYSTEM "file:./config/database/hsqldb.xml"-->//原內容,註解掉
<!ENTITY database SYSTEM "file:./config/database/mssql.xml">//加上
]>
3、編輯輸出的根目錄名,找到該行,大概在30行左右
<!--property name="name" value="airline"/-->//原內容,註解掉
<property name="name" value="com"/>//加上,value為你想要的,如com
4、編輯輸出的包名,找到該行,大概在210行左右
<!--hibernate
destination="${build.gen-src.dir}"
package="${name}.hibernate"
/-->//原內容,註解掉
<hibernate
destination="${build.gen-src.dir}"
package="${name}.test"
/>//加上,產生的xml檔案裡,會以com.test作為你的package
輸出目錄為/build/gen-src/com/test/*.hbm.xml(*為對應的表,命名為你自己所定義的名稱)
5、定義輸出的目錄,找到該行,在文檔最後
<target name="validate">
<xmlvalidate failonerror="no" lenient="no" warn="yes">
<fileset dir="${build.gen-src.dir}/com/test" includes="*.xml" />改成你要輸出的目錄結構,最好以你的包的結構作為目錄結構
</xmlvalidate>
</target>
6、在串連Sql server時,提示資料庫連接成功,但說沒有表,找到該行
<middlegen
appname="${name}"
prefsdir="${src.dir}"
gui="${gui}"
databaseurl="${database.url}"
initialContextFactory="${java.naming.factory.initial}"
providerURL="${java.naming.provider.url}"
datasourceJNDIName="${datasource.jndi.name}"
driver="${database.driver}"
username="${database.userid}"
password="${database.password}"
schema="${database.schema}"//去掉
catalog="${database.catalog}" //去掉,這樣就可以了
>
【配置完畢】
配置完畢後,在根目錄下運行ant
則會出現一個可視化的操作介面,
預設會根據表名和欄位名對應產生相應的名稱,當然你也可以自己定義,對應沒問題,則可以點擊【Generate】,在可發現
/build/gen-src/com/test/*.hbm.xml,會產生相應XML檔案
************************************
hibernate-extensions-2.0應用配置
************************************
這是hibernate的工具,/tools下有3個工具
class2hbm.bat 根據你自己對應表所寫的java檔案,產生相應的*.hbm.xml檔案
ddl2hbm.bat 根據你的資料庫表,自動產生*.hbm.xml和*.java檔案(如果不需要詳細的配置,建議用這種方式產生*.xml和*.java檔案)
hbm2java.bat 根據*.hbm.xml產生相應的*.java檔案
用之前,首先得用ant編譯
【注意的地方】
build.xml
<property name="hibernate-core.home" value="../../hibernate-2.0"/>//找到該行,40行左右
value為你得hibernate解壓目錄
【編譯完畢】
編譯完的檔案存放在/tools/target/hibernate-tools-2.0/
現在可以用編譯完的執行檔案進行映射轉化了
【應用】
hbm2java.bat
1、進入命令列模式,進入hibernate-tools-2.0目錄,進入/bin
2、首先執行setenv.bat,設定一下環境變數,運行前,先檢查一下setenv.bat檔案,用文字編輯器開啟,找到如下行:
set JDBC_DRIVER=C://Progra~1//SQLLIB//java//db2java.zip;C://mm.mysql-2.0.14//mm.mysql-2.0.14-bin.jar;D://j2sdk1.4.1//lib//JSQLConnect.jar
//將你的JDBC驅動添加進去
rem set HIBERNATE_HOME=..//..//hibernate-2.0//原來的
set HIBERNATE_HOME=D://hiber//hibernate-2.0//改成你當前hibernate-2.0所在目錄
3、執行hbm2java.bat D://hiber//com//test//*.xml //後面所跟的是你用Middlegen Hibernate所產生的*.hbm.xml檔案
ddl2hbm.bat
1、2步驟如hbm2java
3、運行ddl2hbm,會彈開一個圖形介面
4、在Connection面板裡,輸入JDBC驅動的相關資訊,如:
DriverClass:com.jnetdirect.jsql.JSQLDriver
ConnectionUrl:jdbc:JSQLConnect://伺服器名/database=資料庫名&user=使用者名稱&password=密碼(注意這是我所用的驅動支援將使用者名稱和密碼放在後面這種格式)
UserName:使用者名稱(我的ConnectionUrl已填寫該資訊,這裡可不填)
PassWord:密碼(我的ConnectionUrl已填寫該資訊,這裡可不填)
5、在Code面板裡,可以定義包名
6、在Output面板裡,可以定義檔案輸出路徑
7、設定好後,進入Table面板,點擊tables…按鈕,如果資料庫連接成功,則會彈開一個小面板,選擇你要映射的資料庫,點擊確定即可,此時
Table面板裡就會顯示該資料庫的所有表格,選擇你需要的表,點擊“Generate”,則在輸出路徑裡產生*.hbm.xml和*.java檔案
【注意的地方】
因為Sqlserver不支援hibernate裡的sequences類型,在測試代碼時會出錯,你開啟產生的*.hbm.xml
將
<id column="test_id" name="id" type="java.lang.Long">
<generator class="identity"/>//這裡改成identity即可
</id>