Hibernate
开源的O/R 映射框架
主要能做O(对象模型)和R(关系模型)的映射。当然这主要是它的一部分功能,一个O/R MAPING框架包括很多东西,HQL(Hibernate Query Language)hibernate自己的面向对象的查询语言,它还提供了很多缓存机制,比如:一级缓存、二级缓存、查询缓存等等。
一个O/R框架的实现是非常复杂的。那么为什么会出现这种框架呢?我们用JAVA做数据库开发的时候,我们都使用JDBC(JAVA DATABASE CONNECTION)操作数据库中,我们会发现有很多步骤都重复了,这样的话会使我们的工作效率降低,另一方面我们的开发没有面向对象化,JAVA是面向对象的,我们建立了好久对象、类、对象之间的关系。而数据库操作这里却是面向关系的。为了更对象化才出现了类似的工具。还有移植性上,随然SQL是标准的,但是很多数据库厂商对SQL进行了扩展,以前我们通常的作法,是采用DAO模式,然后采用不同的SQL来实现DAO,这样来在不同数据库进行移植。采用HIBERNATE,它的移植性会更好的,首先它的查询是面向对象的,还有它支持方言(dialect)。还有一个最重要的问题,面向对象的数据库使用还不是广泛。如果使用广泛了,这种框架就没有意义了,因为面向对象的数据库,我们操作的都是对象。也就是说对象模型也关系模型之间有阻抗不匹配,最经典的就是在对象模型中是有继承的概念,而在关系模型中的是没有继承的概念的,HIBERNATE把这些都给屏蔽了,你只要针对面向对象的开发就行了。
还有最重要的一个特性,HIBERNATE框架没有侵入性,所以HIBERNATE是一个轻量级的框架。
HIBERNATE可以访问JNDI、JDBC、JTA:如果服务器配置了JNDI数据源,HIBERNATE就可以通过JNDI访问数据库。JDBC是本地事务。JTA通常实现两阶段提交协议,可以跨资源保障事务,也称全局事务。本地事务只能针对单一数据库启作用。而JTA可以针对不事数据库提供统一事务。
HIBERNATE基本对象:
Configuration对象:主要读取HIBERNATE配置文件。
SessionFactory对象:重量级对象,创建须要时间,对应缓存机制,和二级缓存绑定,并且是线程安全的。
Session对象:是非线程的,通常一个业务逻辑对应一个Session对象,用完了就要关闭的。
Transaction对象:完成事务的,HIBERNATE默认情况下事务不是自动提交的。
Query对象:支持HQL查询。
HIBERNATE的持久化对象的生命周期:
对象有三种状态:
Transient 瞬时的
Persistent 持久的
Detached 离线的
当new一个实体类的时候它就是瞬时对象,主要是看在数据库中没有和之对应的记录。
当把Transient状态的对象保存到数据库中,就叫Persistent
当清空session了,数据库中有的对象叫Detached
Session的get和load都按主键加载的,get是不支持lazy,load是支持lazy。
Lazy: 只有正真使用对象的时候才加载。延迟加载。
分享到:
相关推荐
这篇博客"Hibernate学习一--注解方式自动建表"主要探讨了如何使用Hibernate的注解来实现数据库表的自动化创建。 在Java编程中,注解(Annotation)是一种元数据,它提供了在代码中插入信息的方式,这些信息可以被...
本篇文章将探讨“Hibernate学习一:简单应用1配置文件版”,主要涵盖如何配置Hibernate,创建实体类,以及进行基本的CRUD操作。 首先,我们来了解Hibernate的核心配置文件——`hibernate.cfg.xml`。这个文件包含了...
这个压缩包包含了丰富的Hibernate学习资源,旨在帮助开发者深入理解和熟练掌握这一强大的工具。 1. **对象关系映射(ORM)基础**: Hibernate 提供了一种将Java对象模型与关系数据库之间的映射机制,使得开发者...
Hibernate学习笔记整理 以下是 Hibernate 框架的详细知识点: Hibernate 介绍 Hibernate 是一个 ORM(Object-Relational Mapping)框架,用于将 Java 对象映射到数据库表中。它提供了一个简洁的方式来访问和操作...
### Hibernate学习知识点详解 #### 1. Hibernate简介与安装配置 **标题:** Hibernate学习 **描述:** Hibernate 学习 Hibernate学习.pdf **标签:** Hibernate 学习 Hibernate学习.pdf **知识点详解:** ####...
《Hibernate学习文档集合》 Hibernate,作为Java领域中的一款强大且广泛应用的对象关系映射(ORM)框架,极大地简化了数据库操作。本集合包含了三个关键的学习文档,分别关注于Hibernate的操作基础、对象关系映射和...
hibernate中一对一,一对多,多对多关系的配置,延迟加载,cascade,inverse hibernate查询方式概述,HQL查询,QBC查询,分页,结果集封装方式 ,高级查询 查询的优化,一级缓存,二级缓存,批量查询,注解方式
《Hibernate学习笔记特别详细》 Hibernate,作为一款开源的Object-Relational Mapping(ORM)框架,为Java开发者提供了强大的数据库操作支持。它简化了数据库访问的复杂性,使得开发人员可以像操作对象一样操作...
**Hibernate 框架概述** Hibernate 是一个开源的对象关系映射(ORM)框架,它为 Java 开发者提供了一种在 Java 应用程序中管理关系...通过实践和深入学习,你可以更好地利用 Hibernate 实现高效、可靠的数据库应用。
标题"Hibernate 中文api 等学习资料"暗示了这是一组针对Hibernate ORM框架的中文学习资源,包括API文档和其他指南,旨在帮助用户更好地理解和使用Hibernate。 描述中的"hibernate orm框架api中文文档,学习资料,...
**hibernate学习资料大合集** 本资料合集涵盖了关于Hibernate的各种学习资源,包括PDF、CHM和Word文档,旨在帮助开发者深入理解和掌握Hibernate这一强大的Java持久化框架。Hibernate作为一个对象关系映射(ORM)...
《Hibernate学习精华》 Hibernate,一个开放源代码的对象关系映射框架,是Java开发者在数据库操作中不可或缺的工具。它简化了Java应用与数据库之间的交互,使得开发人员能够以面向对象的方式来处理数据库操作,极大...
【北大青鸟Hibernate学习资料】 Hibernate是一个开源的Java ORM(对象关系映射)框架,它为开发者提供了在Java应用中管理关系数据库数据的便捷方式。本学习资料集合了多个关于Hibernate的重要主题,包括对象关系...
《Hibernate学习文档》 Hibernate是一种广泛应用于Java开发中的对象关系映射(ORM)框架,它的核心价值在于简化了数据库操作,通过将Java对象模型与SQL关系模型进行映射,使得开发者可以使用面向对象的方式来处理...
**Hibernate学习笔记与大纲** Hibernate 是一款开源的Java语言下的对象关系映射(ORM)框架,它极大地简化了数据库操作,使得开发人员可以使用面向对象的方式处理数据,而无需过多关注底层的SQL语句。本笔记将深入...
Hibernate 是一个流行的对象关系映射(ORM)框架,它允许开发者使用 Java 对象来操作数据库,而无需直接编写 SQL 查询。对于初学者来说,学习 Hibernate 可以简化数据库操作,提高开发效率。以下是对 Hibernate 学习...
在本篇《Hibernate学习笔记》中,我们将深入探讨Hibernate这一流行的Java对象关系映射(ORM)框架。Hibernate允许开发者以面向对象的方式处理数据库操作,极大地简化了数据存取的复杂性。以下是一些关键知识点: 1....
Hibernate一对一数据关联 Hibernate下的多对多关系 Hibernate关系映射 Hibernate继承关系映射 Hibernate映射类型-主键生成器-核心API Hibernate3 插件Eclipse配置
**hibernate学习笔记第四天源码解析** 在hibernate学习的过程中,第四天通常会深入探讨实体类、映射文件、配置文件以及查询语言等方面的内容。这些是hibernate框架的基础,也是开发者掌握持久化操作的关键。让我们...