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的各个包的作用对于有效地利用这个框架至关重要。 首先,`hibernate2.jar`是Hibernate的核心库,包含了框架的主要组件和接口,如Session、SessionFactory等,它是使用Hibernate的基础,不可或缺。 `...
### SSH框架:Struts、Hibernate、Spring的作用解析 #### Struts **Struts** 是一个基于MVC(Model-View-Controller)设计模式的开源框架,主要用于构建动态Web应用程序。在SSH架构中,Struts主要负责处理用户界面...
在深入探讨Hibernate Fetch的作用之前,我们首先需要理解Hibernate框架本身以及其在持久化领域的重要性。Hibernate是一个开源的对象关系映射(ORM)框架,用于Java应用,它提供了将数据库记录映射到对象的方法,使得...
### Java开源项目Hibernate包作用详解 #### 概述 Hibernate是一个强大的对象关系映射(Object-Relational Mapping,简称ORM)框架,它极大地简化了Java应用程序与数据库交互的过程。通过Hibernate,开发者能够更加...
### Hibernate关联映射的作用与常用属性详解 #### 关联映射概述 在对象关系映射(Object Relational Mapping,简称ORM)技术中,Hibernate作为Java领域内非常成熟且功能强大的框架之一,它允许开发者将Java类映射...
10. **方言(Dialect)**: Hibernate需要知道数据库的具体SQL语法,这就是方言的作用。对于MySQL,我们需要指定`org.hibernate.dialect.MySQL5Dialect`(针对MySQL 5.x版本)或`org.hibernate.dialect.MySQL8Dialect...
### Hibernate包详解 #### 1. hibernate2.jar 这是Hibernate的核心库,包含了实现对象关系映射(ORM...了解这些包的具体作用有助于在实际开发过程中更加合理地使用Hibernate,以及根据项目需求进行必要的定制和优化。
Struts和Hibernate是Java Web开发中的两个重要框架,它们在构建高效、可维护的Web应用程序时发挥着关键作用。这个“Struts+Hibernate项目”旨在为开发者提供一个学习和实践的平台,帮助他们快速理解这两种框架的集成...
- 其他库,如XML解析器,编译器库等,根据具体功能可能有所不同。 6. **源码编译**:在源码目录下,使用Maven的`mvn clean install`命令或者Gradle的`gradle build`命令,可以编译源码并生成可执行的JAR或WAR文件...
Hibernate是一款广泛应用于Java环境中的对象关系映射(ORM)框架,它允许开发者使用面向对象的编程方式来操作数据库,极...对于初学者来说,理解每个组件的作用和它们之间的交互关系,是深入学习Hibernate的必经之路。
在IT行业中,Spring、Hibernate和Ibatis是三个非常重要的框架,它们各自在不同的领域发挥着重要作用。Spring是一个全面的后端开发框架,提供依赖注入、AOP(面向切面编程)、MVC(模型-视图-控制器)等功能;...
Hibernate是一个强大的对象关系映射(ORM)框架,它在Java应用程序中起到了桥梁的作用,使得开发者可以使用面向对象的方式来操作数据库。这个压缩包包含了使用Hibernate框架所必需的所有JAR文件,这些文件提供了...
- **配置参数详解**:详细介绍了 Hibernate 的核心配置文件 `hibernate.cfg.xml` 中的关键参数及其作用,如连接数据库的信息、方言设置等。 #### 四、构建简单应用程序 - **项目结构设计**:展示了基于 Hibernate ...
2. **Hibernate的作用**: Hibernate作为ORM框架,它的主要功能是建立Java对象与关系数据库之间的映射关系。它提供了对象与数据库表之间的桥梁,使得开发者可以通过对象操作数据库,而不需要过多关注底层的JDBC细节...
- **定义与作用:** Hibernate是一种对象关系映射(ORM)技术的实现,其主要目的是简化Java应用程序与数据库之间的交互过程。通过使用Hibernate,开发人员能够更加专注于业务逻辑的开发,而无需过多关注底层数据库...
Hibernate是一款强大的对象关系映射(ORM)框架,它在Java应用程序中起到了桥梁的作用,将复杂的数据库操作转换为对Java对象的操作。在这个“hibernate包”中,包含了多个子目录,如`required`、`envers`、`jpa`和`...
- **Hibernate的作用**:Hibernate作为一种ORM(对象关系映射)框架,它的核心价值在于简化了Java对象与关系型数据库之间的交互,实现了对象和数据库表之间的自动映射。 #### 二、应用程序的分层体系结构及其在...
然而,为了优化数据库访问性能,连接池技术在 Hibernate 中起到了至关重要的作用。本文将详细讲解Hibernate2和Hibernate3中如何配置连接池,以及官方推荐的C3P0、Proxool和DBCP等连接池的使用。 首先,我们需要了解...
12. **实战案例**:通过具体项目实例,演示如何在实际开发中运用Hibernate,包括项目结构设计、数据库设计、配置文件编写等。 通过学习这份【传智播客李勇hibernate PPT】,开发者不仅能了解Hibernate的基础知识,...
- 这个过滤器的作用是在每个HTTP请求开始时开启一个Hibernate session,并在请求结束时关闭该session。这样可以确保在处理请求的过程中,session始终处于打开状态,从而避免因session提前关闭而导致的数据访问问题...