Hibernate一共包括了
個jar包
令人眼花缭亂
本文將詳細講解Hibernate每個jar包的作用
便於你在應用中根據自己的需要進行取捨
下載Hibernate
例如
穩定版本
解壓縮
可以看到一個hibernate
jar和lib目錄下有
個jar包
hibernate
jar:
Hibernate的庫
沒有什麼可說的
必須使用的jar包
cglib
asm
jar:
CGLIB庫
Hibernate用它來實現PO字節碼的動態生成
非常核心的庫
必須使用的jar包
dom
j
jar:
dom
j是一個Java的XML API
類似於jdom
用來讀寫XML文件的
dom
j是一個非常非常優秀的Java XML API
具有性能優異
功能強大和極端易用使用的特點
同時它也是一個開放源代碼的軟件
可以在SourceForge上找到它
在IBM developerWorks上面可以找到一篇文章
對主流的Java XML API進行的性能
功能和易用性的評測
dom
j無論在那個方面都是非常出色的
我早在將近兩年之前就開始使用dom
j
直到現在
如今你可以看到越來越多的Java軟件都在使用dom
j來讀寫XML
特別值得一提的是連Sun的JAXM也在用dom
j
這是必須使用的jar包
Hibernate用它來讀寫配置文件
odmg
jar:
ODMG是一個ORM的規范
Hibernate實現了ODMG規范
這是一個核心的庫
必須使用的jar包
commons
collections
jar
Apache Commons包中的一個
包含了一些Apache開發的集合類
功能比java
util
*強大
必須使用的jar包
commons
beanutils
jar
Apache Commons包中的一個
包含了一些Bean工具類類
必須使用的jar包
commons
lang
jar:
Apache Commons包中的一個
包含了一些數據類型工具類
是java
lang
*的擴展
必須使用的jar包
commons
logging
jar:
Apache Commons包中的一個
包含了日志功能
必須使用的jar包
這個包本身包含了一個Simple Logger
但是功能很弱
在運行的時候它會先在CLASSPATH找log
j
如果有
就使用log
j
如果沒有
就找JDK
帶的java
util
logging
如果也找不到就用Simple Logger
commons
logging
jar的出現是一個歷史的的遺留的遺憾
當初Apache極力游說Sun把log
j加入JDK
然而JDK
項目小組已經接近發布JDK
產品的時間了
因此拒絕了Apache的要求
使用自己的java
util
logging
這個包的功能比log
j差的很遠
性能也一般
後來Apache就開發出來了commons
logging
jar用來兼容兩個logger
因此用commons
logging
jar寫的log程序
底層的Logger是可以切換的
你可以選擇log
j
java
util
logging或者它自帶的Simple Logger
不過我仍然強烈建議使用log
j
因為log
j性能很高
log輸出信息時間幾乎等於System
out
而處理一條log平均只需要
us
你可以在Hibernate的src目錄下找到Hibernate已經為你准備好了的log
j的配置文件
你只需要到Apache 網站去下載log
j就可以了
commons
logging
jar也是必須的jar包
使用Hibernate必須的jar包就是以上的這幾個
剩下的都是可選的
ant
jar:
Ant編譯工具的jar包
用來編譯Hibernate源代碼的
如果你不准備修改和編譯Hibernate源代碼
那麼就沒有什麼用
可選的jar包
optional
jar
Ant的一個輔助包
c
p
jar
C
PO是一個數據庫連接池
Hibernate可以配置為使用C
PO連接池
如果你准備用這個連接池
就需要這個jar包
proxool
jar
也是一個連接池
同上
commons
pool
jar
commons
dbcp
jar:
DBCP數據庫連接池
Apache的Jakarta組織開發的
Tomcat
的連接池也是DBCP
實際上Hibernate自己也實現了一個非常非常簡單的數據庫連接池
加上上面
個
你實際上可以在Hibernate上選擇
種不同的數據庫連接池
選擇哪一個看個人的偏好
不過DBCP可能更通用一些
另外強調一點
如果在EJB中使用Hibernate
一定要用App Server的連接池
不要用以上
種連接池
否則容器管理事務不起作用
connector
jar:
JCA 規范
如果你在App Server上把Hibernate配置為Connector的話
就需要這個jar
不過實際上一般App Server肯定會帶上這個包
所以實際上是多余的包
jaas
jar:
JAAS是用來進行權限驗證的
已經包含在JDK
裡面了
所以實際上是多余的包
jcs
jar
如果你准備在Hibernate中使用JCS的話
那麼必須包括它
否則就不用
jdbc
_
stdext
jar:
JDBC
的擴展包
一般來說數據庫連接池會用上它
不過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都會帶上
JDK
也包含了解析器
不過不是Xerces
是Crimson
效率比較差
不過Hibernate用XML只不過是讀取配置文件
性能沒什麼緊要的
所以也是多余的
From:http://tw.wingwit.com/Article/program/Java/ky/201311/28900.html