`

详细解读Hibernate包的作用

阅读更多

Hibernate一共包括了23个jar包,令人眼花缭乱。本文将详细讲解Hibernate每个jar包的作用,便于你在应用中根据自己的需要进行取舍。

  下载Hibernate,例如2.0.3稳定版本,解压缩,可以看到一个hibernate2.jar和lib目录下有22个jar包:

  hibernate2.jar:
  Hibernate的库,没有什么可说的,必须使用的jar包

  cglib-asm.jar:
  CGLIB库,Hibernate用它来实现PO字节码的动态生成,非常核心的库,必须使用的jar包

  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用它来读写配置文件。

  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找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 642-964 源代码的。如果你不准备修改和编译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只不过是读取配置文件,性能没什么紧要的,所以也是多余的。


    (信息来源:conanpaul)

分享到:
评论

相关推荐

    Hibernate分页查询原理解读

    ### Hibernate 分页查询原理详解 #### 一、引言 在大数据量处理场景下,分页查询是提高数据检索效率的重要手段之一。Hibernate作为Java领域内最常用的持久层框架之一,其内置的分页功能非常实用且高效。本文将深入...

    孙卫琴hibernate source code2

    本文将基于压缩包中的章节文件,对Hibernate的源码进行详细解读。 首先,让我们从`chapter3`开始。这一部分主要探讨了Hibernate的核心组件,包括SessionFactory、SessionFactoryBuilder以及Configuration。...

    spring+hibernate+struts包

    标题中的"spring+hibernate+struts包"指的是一个基于Java的Web开发框架组合,这三个组件是Java企业级应用开发中的核心库。Spring是一个全面的后端开发框架,提供了依赖注入、AOP(面向切面编程)、MVC(模型-视图-...

    Hibernate2.1.2参考手册中文版

    《Hibernate2.1.2参考手册中文版》是Java开发者不可或缺的重要资料,它详细解读了Hibernate这一开源ORM(对象关系映射)框架的使用方法和核心概念。Hibernate作为Java领域中备受推崇的数据持久化解决方案,极大地...

    Hibernate开发指南___夏昕

    “Hibernate基础语义”深入介绍了Configuration、SessionFactory、Session等核心组件的作用和用法。这些概念是理解和使用Hibernate的基础,掌握了它们才能灵活应对各种数据持久化场景。 “Hibernate高级特性”章节...

    hibernate源码分析

    **五、源码解读** 深入源码,我们可以了解Hibernate如何实现这些特性的底层逻辑。例如,对象的持久化是如何通过Hibernate的代理机制实现的,查询是如何转化为SQL并执行的,以及事务管理是如何保证数据一致性等。 ...

    Hibernate_ORM步骤详解

    在本教程中,我们将详细介绍如何利用Hibernate 3自动生成代码,以及如何通过Hibernate进行数据库连接和数据插入。 首先,我们需要在MySQL中创建一个数据库和表。例如,我们可以创建名为`student`的数据库,然后在...

    hibernate.txt

    **标题解读:** "hibernate.txt"暗示了文档内容将围绕Hibernate框架展开,这是Java领域内一个非常重要的对象关系映射(Object-Relational Mapping,简称ORM)工具。 **描述解析:** 虽然描述部分的信息似乎没有实质...

    48882037Hibernate_API_Chinese

    【描述】提到的“48882037Hibernate_API_Chinese 中文API”意味着这个资料是专门为中文用户提供的,旨在详细解读Hibernate的所有API接口及其用法。对于初学者或者不熟悉英文文档的开发者来说,这样的中文版API文档是...

    JDBC详细解读,从入门到精通

    在实际开发中,通常会使用JDBC的抽象层,如Hibernate或MyBatis,它们简化了JDBC的操作,提供了更强大的ORM(对象关系映射)功能。 对于CRUD操作,JDBC提供模板代码,例如创建新记录时,可以编写一个通用的INSERT...

    HibernateDemo.zip

    **标签解读:** "Hibernate Demo 源代码"标签再次强调了这是一个关于Hibernate的演示实例,提供源代码供学习和研究。"Demo"通常包含基础功能的实现,便于初学者理解和掌握。 **压缩包子文件:** "HibernateDemo"很...

    Hibernate3学习笔记(一)-hibernate概述和简单实例入门

    **标题解析:** “Hibernate3学习笔记(一)...以上是对“Hibernate3学习笔记(一)-hibernate概述和简单实例入门”可能涵盖的详细知识点的解读,每个主题都可以深入探讨,对于初学者来说,这些内容将构成一个良好的起点。

    hibernate_validator_reference_5.1.3.pdf

    Hibernate Validator是一款Java验证框架,是Bean Validation 1.1(JSR-349)的参考...通过本文的详细解读,我们了解了Hibernate Validator的核心概念和应用方法,这将有助于开发者更加高效地实现复杂的数据验证逻辑。

    一个好的hibernate源代码有server2008数据库

    **描述解读:** 描述中说“5分不算多”,这可能是用户对这个源代码质量的评价,意味着他认为这个源代码的价值或质量非常高,至少可以得满分5分。这也暗示了该代码示例的实用性、可读性和稳定性都相当不错。 **标签...

    hibernate4.5.1源码

    本篇文章将围绕"hibernate4.5.1源码"进行详细的解读。 在Hibernate 4.5.1版本中,主要关注的是以下几个核心知识点: 1. **对象关系映射(ORM)**:ORM是Hibernate的核心功能,它通过提供一个接口,使得Java对象...

    基于hibernate+spring+struts的学生选课系统

    【文件名称列表】中的"eimheSSH2"可能是指项目的一部分或者某个特定的配置文件,具体意义需要根据实际的文件内容来解读。通常在这样的项目中,文件可能会包含以下组成部分: 1. **配置文件**:如hibernate.cfg.xml...

    hibernate相关资料

    以下是对压缩包中各文件所涵盖的Hibernate相关知识点的详细解读: 1. **hibernate_reference.pdf**:这份文档通常是对Hibernate框架的官方参考指南,它详细介绍了Hibernate的各种API、配置选项以及使用方法。你可以...

    传智播客 Hibernate源码

    【标签】"传智播客 Hibernate 源码"中的关键词强调了这是传智播客教育机构提供的教程资料,专注于对Hibernate源代码的解读。传智播客通常以其详尽的教学内容和实例教学而闻名,因此,这个源码分析很可能包含了丰富的...

Global site tag (gtag.js) - Google Analytics