(1)hibernate3.jar:
Hibernate的核心庫,沒有什麼可說的,必須使用的jar包
(2)cglib-asm.jar:
CGLIB庫,Hibernate用它來實現PO位元組碼的動態產生,非常核心的庫,必須使用的jar包
(3)dom4j.jar:
dom4j是一個Java的XML API,類似於jdom,用來讀寫XML檔案的。dom4j是一個非常非常優秀的Java XML API,具有效能優異、功能強大和極端易用使用的特點,同時它也是一個開放原始碼的軟體,可以在SourceForge上找到它。在IBM developerWorks上面可以找到一篇文章,對主流的Java XML API進行的效能、功能和易用性的評測,dom4j無論在那個方面都是非常出色的。我早在將近兩年之前就開始使用dom4j,直到現在。如今你可以看到越來越多的Java軟體都在使用dom4j來讀寫XML,特別值得一提的是連Sun的JAXM也在用dom4j。這是必須使用的jar包,Hibernate用它來讀寫設定檔。
(4)odmg.jar:
ODMG是一個ORM的規範,Hibernate實現了ODMG規範,這是一個核心的庫,必須使用的jar包。
(5)commons-collections.jar:
Apache Commons包中的一個,包含了一些Apache開發的集合類,功能比java.util.*強大。必須使用的jar包。
(6)commons-beanutils.jar:
Apache Commons包中的一個,包含了一些Bean工具類類。必須使用的jar包。
(7)commons-lang.jar:
Apache Commons包中的一個,包含了一些資料類型工具類,是java.lang.*的擴充。必須使用的jar包。
(8)commons-logging.jar:
Apache Commons包中的一個,包含了日誌功能,必須使用的jar包。這個包本身包含了一個Simple Logger,但是功能很弱。在啟動並執行時候它會先在CLASSPATH找log4j,如果有,就使用log4j,如果沒有,就找JDK1.4帶的java.util.logging,如果也找不到就用Simple Logger。commons-logging.jar的出現是一個曆史的的遺留的遺憾,當初Apache極力遊說Sun把log4j加入JDK1.4,然而JDK1.4項目小組已經接近發布JDK1.4產品的時間了,因此拒絕了Apache的要求,使用自己的java.util.logging,這個包的功能比log4j差的很遠,效能也一般。
後來Apache就開發出來了commons-logging.jar用來相容兩個logger。因此用commons-logging.jar寫的log程式,底層的Logger是可以切換的,你可以選擇log4j,java.util.logging或者它內建的Simple Logger。不過我仍然強烈建議使用log4j,因為log4j效能很高,log輸出資訊時間幾乎等於System.out,而處理一條log平均只需要5us。你可以在Hibernate的src目錄下找到Hibernate已經為你準備好了的log4j的設定檔,你只需要到Apache 網站去下載log4j就可以了。commons-logging.jar也是必須的jar包。
使用Hibernate必須的jar包就是以上的這幾個,剩下的都是可選的。
ant.jar:
Ant編譯工具的jar包,用來編譯Hibernate原始碼的。如果你不準備修改和編譯Hibernate原始碼,那麼就沒有什麼用,可選的jar包
optional.jar:
Ant的一個輔助包。
c3p0.jar:
C3PO是一個資料庫連接池,Hibernate可以配置為使用C3PO串連池。如果你準備用這個串連池,就需要這個jar包。
proxool.jar:
也是一個串連池,同上。
commons-pool.jar, commons-dbcp.jar:
DBCP資料庫連接池,Apache的Jakarta組織開發的,Tomcat4的串連池也是DBCP。
實際上Hibernate自己也實現了一個非常非常簡單的資料庫連接池,加上上面3個,你實際上可以在Hibernate上選擇4種不同的資料庫連接池,選擇哪一個看個人的偏好,不過DBCP可能更通用一些。另外強調一點,如果在EJB中使用Hibernate,一定要用App Server的串連池,不要用以上4種串連池,否則容器管理事務不起作用。
connector.jar:
JCA 規範,如果你在App Server上把Hibernate配置為Connector的話,就需要這個jar。不過實際上一般App Server肯定會帶上這個包,所以實際上是多餘的包。
jaas.jar:
JAAS是用來進行許可權驗證的,已經包含在JDK1.4裡面了。所以實際上是多餘的包。
jcs.jar:
如果你準備在Hibernate中使用JCS的話,那麼必須包括它,否則就不用。
jdbc2_0-stdext.jar:
JDBC2.0的擴充包,一般來說資料庫連接池會用上它。不過App Server都會帶上,所以也是多餘的。
jta.jar:
JTA規範,當Hibernate使用JTA的時候需要,不過App Server都會帶上,所以也是多餘的。
junit.jar:
Junit包,當你運行Hibernate內建的測試代碼的時候需要,否則就不用。
xalan.jar, xerces.jar, xml-apis.jar:
Xerces是XML解析器,Xalan是格式化器,xml-apis實際上是JAXP。一般App Server都會帶上,JDK1.4也包含瞭解析器,不過不是Xerces,是Crimson,效率比較差,不過Hibernate用XML只不過是讀取設定檔,效能沒什麼緊要的,所以也是多餘的。
ant-1.63.jarAnt 的核心包,在構建Hibernate 時會用到
antlr-2.7.5H3.jar語言轉換工,Hibernate利用它實現 HQL 到 SQL的轉換
asm.jar/asm-attrs.jar ASM 位元組轉換庫
c3p0-0.8.5.2.jarC3PO JDBC 串連池工具
cglib-2.1.jar高效的代碼產生工具, Hibernate用它在運行時擴充 Java類和實現 Java 介面
commons-collections-2.1.1.jarApache 的工具集,用來增強Java對集合的處理能力
commons-logging-1.0.4.jarApache 軟體基我組所提供的日誌工具
concurrent-1.3.2.jar線程同步工具,在使用JBoss 的樹狀緩衝時需要用到
connector.jar用串連多個應用伺服器的標準連接器
dom4j-1.6.jardom4j XML 解析器
ehcache-1.1.jar緩衝工具.在沒有提供其他緩衝工具時,這個緩衝工具是必不可少的
jaas.jar標準的 Java 許可權和認證服務包
jaxen-1.1-beta-4.jar通用的 XPath 處理引擎
jboss-cache.jarJBoss 的一種樹狀緩衝實現工具
jboss-common.jarJboss 的基礎包,在使用 JBoss 的樹狀緩衝時必須有此包
jboss-jmx.jarJBoss 的 JMX 實現包
jboss-system.jarJBoss 的核心,包括伺服器和部署引擎
jdbc2_0-stdext.jar標準的 JDBC 2.0 擴充API
jgroups2.2.7.jar網路通訊工具包
jta.jar標準的 JAVA 交易處理介面
junit-3.8.1.jarJUnit 測試架構
log4.j-1.2.9.jarlog4j 庫,Apache 的日誌工具
oscache-2.1.jarJava 對象的緩衝工具
proxool-0.8.3.jarProxool JDBC 串連池 工具
swarmcache-1.0rc2.jarHibernate 可以使用的一種緩衝工具
versioncheck.jar 版本檢查工具包,用於在構建 Hibernate 的時候檢查輔助 jar 包檔案的版本
xerces-2.6.2.jarSAX XML 解析器
xml-apis.jarJava語言中標準的XML 解析器