Hibernate是ORM的解決方案,其底層對(duì)資料庫(kù)的操作依賴於JDBC,所以您必須先取得JDBC驅(qū)動(dòng)程式,在這邊我們使用的是MySQL,所以您必須至以下網(wǎng)址先取得MySQL的JDBC驅(qū)動(dòng)程式:
JDBC驅(qū)動(dòng)程式
接下來(lái)取得Hibernate,在撰寫(xiě)此文的同時(shí),Hibernate最後的穩(wěn)定版本是2.1.6,而3.0版還在測(cè)試階段,這邊的介紹將以2.1.6為主,所以請(qǐng)至以下網(wǎng)址取得hibernate-2.1.6.zip:
Hibernate官方網(wǎng)站
解開(kāi)hibernate-2.1.6.zip後,當(dāng)中的hibernate2.jar是必要的,而在lib目錄中還包括了許多jar檔案,其中 dom4j、CGLIB、Commons Collections、Commons Logging、ODMG4、EHCache是必要的,而Log4j則是建議使用的,為何使用這些jar,在Hibernate參考手冊(cè)中有說(shuō)明,您可以開(kāi)啟doc\reference中的參考手冊(cè),有英文版與簡(jiǎn)體中文版的介紹,檔案格式則提供有html與pdf兩種,以下列出簡(jiǎn)體中文中的說(shuō)明:
- dom4j(必需):Hibernate在解析XML配置和XML映射元文件時(shí)需要使用dom4j。
- CGLIB(必需):Hibernate在運(yùn)行時(shí)使用這個(gè)代碼生成庫(kù)強(qiáng)化類(與Java反射機(jī)制聯(lián)合使用)。
- Commons Collections, Commons Logging(必需):Hibernat使用Apache Jakarta Commons項(xiàng)目提供的多個(gè)工具類庫(kù)。
- ODMG4(必需):Hibernate提供了一個(gè)可選的ODMG兼容持久化管理界面。如果你需要映射集合,你就需要這個(gè)類庫(kù),就算你不是為了使用ODMG API。
- EHCache(必需):Hibernate可以使用不同的第二級(jí)Cache方案。如果沒(méi)有修改配置的話,EHCache提供默認(rèn)的Cache。
- Log4j(可選):Hibernate使用Commons Logging API,後者可以使用Log4j作為底層實(shí)施log的機(jī)制。如果上下文類目錄中存在Log4j庫(kù),Commons Logging就會(huì)使用Log4j和它在上下文類路徑中找到的log4j.properties文件。在Hibernate發(fā)行包中包含有一個(gè)示例的 properties文件。所以,如果你想看看幕後到底發(fā)生了什麼,也把log4j.jar拷貝到你的上下文類路徑去吧(它位於src/目錄中)。
以上是Hibernate參考手冊(cè)所列出的jar檔案,Hibernate底層還需要Java Transaction API,所以您還需要jta.jar,到這邊為止,總共需要十個(gè)jar檔案:
mysql-connector-java-3.0.14-production-bin.jar jta.jar hibernate2.jar cglib-full-2.0.2.jar commons-collections-2.1.1.jar commons-logging-1.0.4.jar dom4j-1.4.jar ehcache-0.9.jar log4j-1.2.8.jar odmg-3.0.jar
其它的jar檔案則視您的需要來(lái)設(shè)定,例如您應(yīng)該也會(huì)使用到Ant,這對(duì)於自動(dòng)化建構(gòu)Hibernate有相當(dāng)?shù)膸椭梢韵炔榭次伊硪粋€(gè)版面上有關(guān)於Ant的介紹:
Hibernate可以運(yùn)行於單機(jī)之上,也可以運(yùn)行於Web應(yīng)用程式之中,如果是運(yùn)行於單機(jī),則將所有用到的jar檔案(包括JDBC驅(qū)動(dòng)程式)設(shè)定至CLASSPATH中,如果是運(yùn)行於Web應(yīng)用程式中,則將jar檔案置放於WEB-INF/lib中,其中JDBC驅(qū)動(dòng)程式也可以依賴於JNDI 來(lái)取得資源,設(shè)定的方式之後介紹,或者您也可以先看看這篇文章有關(guān)於DBCP的介紹:
DBCP介紹
準(zhǔn)備好這些檔案後,我們下一個(gè)主題將介紹一個(gè)快速入門(mén)的例子。