主要介紹的是Hibernate使用到的.jar
Hibernate一共包括了23個jar包,使人眼花繚亂。本文將詳細講解Hibernate每一個jar包的做用,便於你在應用中根據本身的須要進行取捨。
下載Hibernate,例如2.0.3穩定版本,解壓縮,能夠看到一個hibernate2.jar和lib目錄下有22個jar包.java
1.hibernate2: jar
Hibernate的庫,沒有什麼可說的,必須使用的jar包.數據庫
2.cglib-asm.jar
CGLIB庫,Hibernate用它來實現PO字節碼的動態生成,很是核心的庫,必須使用的jar包.api
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用它來讀寫配置文件。dom
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包就是以上的這幾個,剩下的都是可選的。
-----------------------------------------------------------------------------------------
spa
9.ant.jar
Ant編譯工具的jar包,用來編譯Hibernate源代碼的。若是你不許備修改和編譯Hibernate源代碼,那麼就沒有什麼用,可選的jar包
10.optional.jar
Ant的一個輔助包。hibernate
11.c3p0.jar
C3PO是一個數據庫鏈接池,Hibernate能夠配置爲使用C3PO鏈接池。若是你準備用這個鏈接池,就須要這個jar包。
12.proxool.jar
也是一個鏈接池,同上。
13.commons-pool.jar,commons-dbcp.jar
DBCP數據庫鏈接池,Apache的Jakarta組織開發的,Tomcat4的鏈接池也是DBCP。
實際上Hibernate本身也實現了一個很是很是簡單的數據庫鏈接池,加上上面3個,你實際上能夠在Hibernate上選擇4種不一樣的數據庫鏈接池,選擇哪個看我的的偏好,不過DBCP可能更通用一些。另外強調一點,若是在EJB中使用Hibernate,必定要用App Server的鏈接池,不要用以上4種鏈接池,不然容器管理事務不起做用。
14.connector.jar
JCA 規範,若是你在App Server上把Hibernate配置爲Connector的話,就須要這個jar。不過實際上通常App Server確定會帶上這個包,因此其實是多餘的包。
15.jaas.jar
JAAS是用來進行權限驗證的,已經包含在JDK1.4裏面了。因此其實是多餘的包。
16.jcs.jar
若是你準備在Hibernate中使用JCS的話,那麼必須包括它,不然就不用。
17.jdbc2_0-stdext.jar
JDBC2.0的擴展包,通常來講數據庫鏈接池會用上它。不過App Server都會帶上,因此也是多餘的。
18.jta.jar
JTA規範,當Hibernate使用JTA的時候須要,不過App Server都會帶上,因此也是多餘的。
19.junit.jar
Junit包,當你運行Hibernate自帶的測試代碼的時候須要,不然就不用。
20.xalan.jar, xerces.jar, xml-apis.jar
Xerces是XML解析器,Xalan是格式化器,xml-apis其實是JAXP。通常App Server都會帶上,JDK1.4也包含了解析器,不過不是Xerces,是Crimson,效率比較差,不過Hibernate用XML只不過是讀取配置文件,性能沒什麼緊要的,因此也是多餘的。