`

Hibernate的具体作用

 
阅读更多

Hibernate是一个开放源代码
的对象关系映射框架,它对JDBC进行了非常轻量级
的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库
。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化
的重任。

Hibernate的核心接口一共有5个,分别为:Session、SessionFactory、Transaction、Query和Configuration。这5个核心接口在任何开发中都会用到。通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。下面对这五的核心接口分别加以介绍。
  ·Session接口:Session接口负责执行被持久化对象的CRUD操作(CRUD的任务是完成与数据库的交流,包含了很多常见的SQL语句。)。但需要注意的是Session对象是非线程安全
的。同时,Hibernate的session不同于JSP应用中的HttpSession。这里当使用session这个术语时,其实指的是Hibernate中的session,而以后会将HttpSesion对象称为用户session。
  ·SessionFactory接口:SessionFactroy接口负责初始化Hibernate。它充当数据存储
源的代理,并负责创建Session对象。这里用到了工厂模式
。需要注意的是SessionFactory并不是轻量级的,因为一般情况下,一个项目通常只需要一个SessionFactory就够,当需要操作多个数据库时,可以为每个数据库指定一个SessionFactory。
  ·Configuration接口:Configuration接口负责配置并启动Hibernate,创建SessionFactory对象。在Hibernate的启动的过程中,Configuration类的实例首先定位映射文档位置、读取配置,然后创建SessionFactory对象。
  ·Transaction接口:Transaction接口负责事务相关的操作。它是可选的,开发人员也可以设计编写自己的底层事务处理
代码。
  ·Query和Criteria接口:Query和Criteria接口负责执行各种数据库查询。它可以使用HQL语言或SQL语句两种表达方式


Hibernate源码
中几个包的作用简要介绍
net.sf.hibernate.*
  
  该包的类基本上都是接口类和异常类
  
  net.sf.hibernate.cache.*
  
  JCS的实现类
  
  net.sf.hibernate.cfg.*
  
  配置文件读取类
  
  net.sf.hibernate.collection.*
  
  Hibernate集合接口实现类,例如List,Set,Bag等等,Hibernate之所以要自行编写集合接口实现类是为了支持lazy loading
  
  net.sf.hibernate.connection.*
  
  几个数据库连接池
的Provider
  
  net.sf.hibernate.dialect.*
  
  支持多种数据库特性,每个Dialect实现类代表一种数据库,描述了该数据库支持的数据类型
和其它特点,例如是否有AutoIncrement,是否有Sequence,是否有分页sql等等
  
  net.sf.hibernate.eg.*
  
  Hibernate文档中用到的例子
  
  net.sf.hibernate.engine.*
  
  这个包的类作用比较散
  
  net.sf.hibernate.expression.*
  
  HQL支持的表达式
  
  net.sf.hibernate.hq.*
  
  HQL实现
  
  net.sf.hibernate.id.*
  
  ID生成器
  
  net.sf.hibernate.impl.*
  
  最核心的包,一些重要接口的实现类,如果Session,SessionFactory,Query等
  
  net.sf.hibernate.jca.*
  
  JCA支持,把Session包装为支持JCA的接口实现类
  
  net.sf.hibernate.jmx.*
  
  我不懂JMX,只知道JMX是用来编写App Server的管理程序的,大概是JMX部分接口的实现,使得App Server可以通过JMX接口管理Hibernate
  
  net.sf.hibernate.loader.*
  
  也是很核心的包,主要是生成sql语句的
  
  net.sf.hibernate.lob.*
  
  Blob和Clob支持
  
  net.sf.hibernate.mapping.*
  
  hbm文件的属性实现
  
  net.sf.hibernate.metadata.*
  
  PO的Meta实现
  
  net.sf.hibernate.odmg.*
  
  ODMG是一个ORM标准,这个包是ODMG标准的实现类
  
  net.sf.hibernate.persister.*
  
  核心包,实现持久对象和表之间的映射
  
  net.sf.hibernate.proxy.*
  
  Proxy和Lazy Loading支持
  
  net.sf.hibernate.ps.*
  
  该包是PreparedStatment Cache
  
  net.sf.hibernate.sql.*
  
  生成JDBC sql语句的包
  
  net.sf.hibernate.test.*
  
  测试类,你可以用junit来测试Hibernate
  
  net.sf.hibernate.tool.hbm2ddl.*
  
  用hbm配置文件生成DDL
  
  net.sf.hibernate.transaction.*
  
  Hibernate Transaction实现类
  
  net.sf.hibernate.type.*
  
  Hibernate中定义的持久对象的属性的数据类型
  
  net.sf.hibernate.util.*
  
  一些工具类,作用比较散
  
  net.sf.hibernate.xml.*
  
  XML数据绑定
 

hibernate官方网站 http://www.hibernate.org/

分享到:
评论

相关推荐

    Hibernate包作用详解

    理解Hibernate的各个包的作用对于有效地利用这个框架至关重要。 首先,`hibernate2.jar`是Hibernate的核心库,包含了框架的主要组件和接口,如Session、SessionFactory等,它是使用Hibernate的基础,不可或缺。 `...

    SSH中 struts hibernate spring 各起什么作用

    ### SSH框架:Struts、Hibernate、Spring的作用解析 #### Struts **Struts** 是一个基于MVC(Model-View-Controller)设计模式的开源框架,主要用于构建动态Web应用程序。在SSH架构中,Struts主要负责处理用户界面...

    hibernate 资料hibernate 资料hibernate 资料

    - **定义与作用:** Hibernate是一种对象关系映射(ORM)技术的实现,其主要目的是简化Java应用程序与数据库之间的交互过程。通过使用Hibernate,开发人员能够更加专注于业务逻辑的开发,而无需过多关注底层数据库...

    Hibernate Fetch 的作用

    在深入探讨Hibernate Fetch的作用之前,我们首先需要理解Hibernate框架本身以及其在持久化领域的重要性。Hibernate是一个开源的对象关系映射(ORM)框架,用于Java应用,它提供了将数据库记录映射到对象的方法,使得...

    Java开源项目Hibernate包作用详解

    ### Java开源项目Hibernate包作用详解 #### 概述 Hibernate是一个强大的对象关系映射(Object-Relational Mapping,简称ORM)框架,它极大地简化了Java应用程序与数据库交互的过程。通过Hibernate,开发者能够更加...

    hibernate关联映射的作用和常用属性解释

    ### Hibernate关联映射的作用与常用属性详解 #### 关联映射概述 在对象关系映射(Object Relational Mapping,简称ORM)技术中,Hibernate作为Java领域内非常成熟且功能强大的框架之一,它允许开发者将Java类映射...

    hibernate和MySQL的jar

    10. **方言(Dialect)**: Hibernate需要知道数据库的具体SQL语法,这就是方言的作用。对于MySQL,我们需要指定`org.hibernate.dialect.MySQL5Dialect`(针对MySQL 5.x版本)或`org.hibernate.dialect.MySQL8Dialect...

    Hibernate中所有包作用详细讲解

    ### Hibernate包详解 #### 1. hibernate2.jar 这是Hibernate的核心库,包含了实现对象关系映射(ORM...了解这些包的具体作用有助于在实际开发过程中更加合理地使用Hibernate,以及根据项目需求进行必要的定制和优化。

    struts+hibernate 项目

    Struts和Hibernate是Java Web开发中的两个重要框架,它们在构建高效、可维护的Web应用程序时发挥着关键作用。这个“Struts+Hibernate项目”旨在为开发者提供一个学习和实践的平台,帮助他们快速理解这两种框架的集成...

    hibernate tools源码运行或修改需要的jar

    - 其他库,如XML解析器,编译器库等,根据具体功能可能有所不同。 6. **源码编译**:在源码目录下,使用Maven的`mvn clean install`命令或者Gradle的`gradle build`命令,可以编译源码并生成可执行的JAR或WAR文件...

    Hibernate所需架包

    Hibernate是一款广泛应用于Java环境中的对象关系映射(ORM)框架,它允许开发者使用面向对象的编程方式来操作数据库,极...对于初学者来说,理解每个组件的作用和它们之间的交互关系,是深入学习Hibernate的必经之路。

    spring与hibernate以及ibatis集成的实例和具体配置图解

    在IT行业中,Spring、Hibernate和Ibatis是三个非常重要的框架,它们各自在不同的领域发挥着重要作用。Spring是一个全面的后端开发框架,提供依赖注入、AOP(面向切面编程)、MVC(模型-视图-控制器)等功能;...

    hibernate所有用到的jar包

    Hibernate是一个强大的对象关系映射(ORM)框架,它在Java应用程序中起到了桥梁的作用,使得开发者可以使用面向对象的方式来操作数据库。这个压缩包包含了使用Hibernate框架所必需的所有JAR文件,这些文件提供了...

    Beginning Hibernate, 3rd Edition

    - **配置参数详解**:详细介绍了 Hibernate 的核心配置文件 `hibernate.cfg.xml` 中的关键参数及其作用,如连接数据库的信息、方言设置等。 #### 四、构建简单应用程序 - **项目结构设计**:展示了基于 Hibernate ...

    hibernate包

    Hibernate是一款强大的对象关系映射(ORM)框架,它在Java应用程序中起到了桥梁的作用,将复杂的数据库操作转换为对Java对象的操作。在这个“hibernate包”中,包含了多个子目录,如`required`、`envers`、`jpa`和`...

    hibernate一些文档资料

    - **Hibernate的作用**:Hibernate作为一种ORM(对象关系映射)框架,它的核心价值在于简化了Java对象与关系型数据库之间的交互,实现了对象和数据库表之间的自动映射。 #### 二、应用程序的分层体系结构及其在...

    Hibernate2和Hibernate3连接池配置.doc

    然而,为了优化数据库访问性能,连接池技术在 Hibernate 中起到了至关重要的作用。本文将详细讲解Hibernate2和Hibernate3中如何配置连接池,以及官方推荐的C3P0、Proxool和DBCP等连接池的使用。 首先,我们需要了解...

    传智播客李勇hibernate PPT

    12. **实战案例**:通过具体项目实例,演示如何在实际开发中运用Hibernate,包括项目结构设计、数据库设计、配置文件编写等。 通过学习这份【传智播客李勇hibernate PPT】,开发者不仅能了解Hibernate的基础知识,...

    Hibernate4.1环境搭建

    - 这个过滤器的作用是在每个HTTP请求开始时开启一个Hibernate session,并在请求结束时关闭该session。这样可以确保在处理请求的过程中,session始终处于打开状态,从而避免因session提前关闭而导致的数据访问问题...

    hibernate第一天笔记

    第二次由于对象已在缓存中,所以不会再次查询,这体现了缓存提高效率的作用。 总的来说,Hibernate第一天的学习涵盖了基本的环境配置、对象关系映射、主键生成策略、`SessionFactory`和`Session`的使用,以及事务...

Global site tag (gtag.js) - Google Analytics