明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線(xiàn)學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

<>


標(biāo)簽:Hibernate包作用詳細(xì)說(shuō)明 

Hibernate包作用詳細(xì)說(shuō)明

[摘要]Hibernate一共包括了23個(gè)jar包,令人眼花繚亂。本文將詳細(xì)講解Hibernate每個(gè)jar包的作用,便于你在應(yīng)用中根據(jù)自己的需要進(jìn)行取舍。   下載Hibernate,例如2.0.3穩(wěn)定版本,解壓縮,可以看到一個(gè)hibernate2.jar和lib目錄下有22個(gè)jar包:   hiber...
Hibernate一共包括了23個(gè)jar包,令人眼花繚亂。本文將詳細(xì)講解Hibernate每個(gè)jar包的作用,便于你在應(yīng)用中根據(jù)自己的需要進(jìn)行取舍。

  下載Hibernate,例如2.0.3穩(wěn)定版本,解壓縮,可以看到一個(gè)hibernate2.jar和lib目錄下有22個(gè)jar包:

  hibernate2.jar:
  Hibernate的庫(kù),沒(méi)有什么可說(shuō)的,必須使用的jar包

  cglib-asm.jar:
  CGLIB庫(kù),Hibernate用它來(lái)實(shí)現(xiàn)PO字節(jié)碼的動(dòng)態(tài)生成,非常核心的庫(kù),必須使用的jar包

  dom4j.jar:
  dom4j是一個(gè)Java的XML API,類(lèi)似于jdom,用來(lái)讀寫(xiě)XML文件的。dom4j是一個(gè)非常非常優(yōu)秀的Java XML API,具有性能優(yōu)異、功能強(qiáng)大和極端易用使用的特點(diǎn),同時(shí)它也是一個(gè)開(kāi)放源代碼的軟件,可以在SourceForge上找到它。在IBM developerWorks上面可以找到一篇文章,對(duì)主流的Java XML API進(jìn)行的性能、功能和易用性的評(píng)測(cè),dom4j無(wú)論在那個(gè)方面都是非常出色的。我早在將近兩年之前就開(kāi)始使用dom4j,直到現(xiàn)在。如今你可以看到越來(lái)越多的Java軟件都在使用dom4j來(lái)讀寫(xiě)XML,特別值得一提的是連Sun的JAXM也在用dom4j。這是必須使用的jar包,Hibernate用它來(lái)讀寫(xiě)配置文件。

  odmg.jar:
  ODMG是一個(gè)ORM的規(guī)范,Hibernate實(shí)現(xiàn)了ODMG規(guī)范,這是一個(gè)核心的庫(kù),必須使用的jar包。

  commons-collections.jar:
  Apache Commons包中的一個(gè),包含了一些Apache開(kāi)發(fā)的集合類(lèi),功能比java.util.*強(qiáng)大。必須使用的jar包。

  commons-beanutils.jar:
  Apache Commons包中的一個(gè),包含了一些Bean工具類(lèi)類(lèi)。必須使用的jar包。

  commons-lang.jar:
  Apache Commons包中的一個(gè),包含了一些數(shù)據(jù)類(lèi)型工具類(lèi),是java.lang.*的擴(kuò)展。必須使用的jar包。

  commons-logging.jar:
  Apache Commons包中的一個(gè),包含了日志功能,必須使用的jar包。這個(gè)包本身包含了一個(gè)Simple Logger,但是功能很弱。在運(yùn)行的時(shí)候它會(huì)先在CLASSPATH找log4j,如果有,就使用log4j,如果沒(méi)有,就找JDK1.4帶的java.util.logging,如果也找不到就用Simple Logger。commons-logging.jar的出現(xiàn)是一個(gè)歷史的的遺留的遺憾,當(dāng)初Apache極力游說(shuō)Sun把log4j加入JDK1.4,然而JDK1.4項(xiàng)目小組已經(jīng)接近發(fā)布JDK1.4產(chǎn)品的時(shí)間了,因此拒絕了Apache的要求,使用自己的java.util.logging,這個(gè)包的功能比log4j差的很遠(yuǎn),性能也一般。

  后來(lái)Apache就開(kāi)發(fā)出來(lái)了commons-logging.jar用來(lái)兼容兩個(gè)logger。因此用commons-logging.jar寫(xiě)的log程序,底層的Logger是可以切換的,你可以選擇log4j,java.util.logging或者它自帶的Simple Logger。不過(guò)我仍然強(qiáng)烈建議使用log4j,因?yàn)閘og4j性能很高,log輸出信息時(shí)間幾乎等于System.out,而處理一條log平均只需要5us。你可以在Hibernate的src目錄下找到Hibernate已經(jīng)為你準(zhǔn)備好了的log4j的配置文件,你只需要到Apache 網(wǎng)站去下載log4j就可以了。commons-logging.jar也是必須的jar包。

  使用Hibernate必須的jar包就是以上的這幾個(gè),剩下的都是可選的。

  ant.jar:
  Ant編譯工具的jar包,用來(lái)編譯Hibernate源代碼的。如果你不準(zhǔn)備修改和編譯Hibernate源代碼,那么就沒(méi)有什么用,可選的jar包

  optional.jar:
  Ant的一個(gè)輔助包。

  c3p0.jar:
  C3PO是一個(gè)數(shù)據(jù)庫(kù)連接池,Hibernate可以配置為使用C3PO連接池。如果你準(zhǔn)備用這個(gè)連接池,就需要這個(gè)jar包。

  proxool.jar:
  也是一個(gè)連接池,同上。

  commons-pool.jar, commons-dbcp.jar:
  DBCP數(shù)據(jù)庫(kù)連接池,Apache的Jakarta組織開(kāi)發(fā)的,Tomcat4的連接池也是DBCP。

  實(shí)際上Hibernate自己也實(shí)現(xiàn)了一個(gè)非常非常簡(jiǎn)單的數(shù)據(jù)庫(kù)連接池,加上上面3個(gè),你實(shí)際上可以在Hibernate上選擇4種不同的數(shù)據(jù)庫(kù)連接池,選擇哪一個(gè)看個(gè)人的偏好,不過(guò)DBCP可能更通用一些。另外強(qiáng)調(diào)一點(diǎn),如果在EJB中使用Hibernate,一定要用App Server的連接池,不要用以上4種連接池,否則容器管理事務(wù)不起作用。

  connector.jar:
  JCA 規(guī)范,如果你在App Server上把Hibernate配置為Connector的話(huà),就需要這個(gè)jar。不過(guò)實(shí)際上一般App Server肯定會(huì)帶上這個(gè)包,所以實(shí)際上是多余的包。

  jaas.jar:
  JAAS是用來(lái)進(jìn)行權(quán)限驗(yàn)證的,已經(jīng)包含在JDK1.4里面了。所以實(shí)際上是多余的包。

  jcs.jar:
  如果你準(zhǔn)備在Hibernate中使用JCS的話(huà),那么必須包括它,否則就不用。

  jdbc2_0-stdext.jar:
  JDBC2.0的擴(kuò)展包,一般來(lái)說(shuō)數(shù)據(jù)庫(kù)連接池會(huì)用上它。不過(guò)App Server都會(huì)帶上,所以也是多余的。

  jta.jar:
  JTA規(guī)范,當(dāng)Hibernate使用JTA的時(shí)候需要,不過(guò)App Server都會(huì)帶上,所以也是多余的。

  junit.jar:
  Junit包,當(dāng)你運(yùn)行Hibernate自帶的測(cè)試代碼的時(shí)候需要,否則就不用。

  xalan.jar, xerces.jar, xml-apis.jar:
  Xerces是XML解析器,Xalan是格式化器,xml-apis實(shí)際上是JAXP。一般App Server都會(huì)帶上,JDK1.4也包含了解析器,不過(guò)不是Xerces,是Crimson,效率比較差,不過(guò)Hibernate用XML只不過(guò)是讀取配置文件,性能沒(méi)什么緊要的,所以也是多余的。