首先: 什么是Hibernate?
Hibernate其实就是一个ORM框架。它能提供强大的对象和关系型数据库的映射以及查询功能。直白的说,Hibernate就是利用面向对象的思维开发基于关系数据库的应用程序。
这中间还需要知道什么是持久化层?
企业软件架构比较流行的三层结构自上而下:
【显示表述层】=>【业务逻辑层】=>【数据库层】。
这里业务逻辑层不仅要负责业务逻辑,而且直接访问数据库完成对业务数据的相关操作。当把数据访问的细节和业务逻辑分开并且把数据访问单独作为持久化层,重新分层后自上而下就变成:
【显示表述层】=>【业务逻辑层】=>【持久化层】=>【数据库层】。
这样持久化层封装数据访问细节,为业务逻辑层提供面向对象的API。这个持久化层应达到以下目标:
1.代码重用性高,能完成对所有数据库的操作;
2.能够支持多种数据库平台;
3.具有独立性,持久化层的具体实现的变化不能影响上层的表现。
Hibernate的优势在于:1.开源。2.成熟!3.流行。4.自定义API。
5. JBoss就用Hibernate3实现Entity Beans。 (什么是JBoss?了解请点击这里。 )
--------------------------------------------------------------------------------
ORM又是什么?
ORM=Object-Relation Mapping(对象-关系映射),它是一门非常实用的工程技术。实现了 JAVA应用中的对象到关系数据库中的表的自动的(和透明的)持久化,使用元数据(meta data)描述对象与数据库之间的映射。
ORM可以看成是一座桥。一座架于面向对象开发语言和关系型数据库之间的桥-----没办法,谁让这两种都是主流呢。它们之间的映射关系如下:
[类]<=>[表] [对象实例]<=>[表的行] [属性]<=>[表的列]
中间只需制定一个映射文件(XML),然后在该文件里配置持久化类与DB表的映射关系,ORM中间件在运行时参照此文件内容,把DB中的数据加载到持久化类中。所谓中间件,比如Hibernate..................................
ORM的优点在于:1.提高生产率。2.可维护性。3.更好的性能。
--------------------------------------------------------------------------------
Hibernate框架中重要的API
Hibernate框架中的部分核心API,几乎在任何的实际开发中都会用到,程序员通过这些可以获取和保存持久对象,并进行事物处理。
1.Configuration(配置)
Configuration是启动HIbernate第一个运行的类,它的作用是负责管理Hibernate的配置信息。在Hibernate启动过程中,Configuration类的实例首先定位映射文件的位置,读取配置文件的信息然后创建一个SessionFactory对象。它的内容如下:
Hibernate运行的底层信息:数据库的URL,用户名,密码,JDBC的驱动类,数据库方言(Dialect)和数据库连接池等。
Hibernate的映射文件:*.hbm.xml 。*即文件名。一般还是用Hibernate,方便规范。
Hibernate配置调用代码: Configuration cfg = new Configuration().configure();
2.SessionFactory(会话工厂)接口
SessionFactory接口是用来产生Session的工厂。一个SessionFactory对象代表一个数据库,它能够让所有的客户程序在内存中共享,用来得到不同的Session对象。
会话工厂缓存了生成的SQL语句和Hibernate运行时使用的映射元数据。
会话工厂调用代码: SessionFactory sessionFactory = cfg.buildSessionFactory();
3.Session(会话)接口
这是JAVA中和Hibernate进行交互的主要接口,也是持久化操作的主要API,它提供对数据持久对象进行操作的方法,可以把它想象成一个持久对象的缓冲区。Hibernate能够自动检测缓冲区中的持久对象是否已经改变,并及时刷新数据,以保证Session中的对象与数据库的同步。
Session对象的主要功能是读取,创建和删除映射的实体对象的实例。这些操作被转化成了数据库中表的增删改查等操作。
Session对象不是线程安全的对象,Session的实例是通过SessionFactory的openSession方法得到的。在所有工作完成后,需要关闭.
会话调用代码: Session sess = SessionFactory.openSession();
4.Transaction(事务)接口
在EJB中,事务处理是依靠EJB容器来处理,但是在Hibernate轻量级框架中,不依赖于容器而是用自己的API来调用底层的事务API达到事务处理的目的。这样有助于保持Hibernate应用在不同类型的执行环境或容器中的可移植性。
Session对象的生命周期,也以Transaction对象的事务开始和结束为边界。
sess.beginTransaction(); //开始
sess.getTransaction().commit(); //结束
5.Query(查询)和Criteria(标准)接口
Query接口允许对数据库及持久对象进行查询并控制查询如何执行。它可以有两种表达方式:HQL语言或本地数据库的SQL语句。Query经常被用来绑定查询参数、限制查询记录数量,并最终执行查询操作。
Query接口是轻量级的。不能在Session之外使用。
查询调用代码: Query query = session.createQuery("select * from 表名");
Criteria接口与Query接口非常类似,它允许创建并执行面向对象的标准化查询。
分享到:
相关推荐
【hibernate简介】 Hibernate 是一个广泛应用于Java开发领域的开源对象关系映射(ORM)框架。它的出现旨在解决Java程序员在使用JDBC操作数据库时面临的繁琐低效问题,通过提供面向对象的API,使得开发者可以以更加...
【Hibernate简介及特性】 Hibernate是一个Java开发中的对象关系映射(ORM)框架,它提供了将数据库操作转化为面向对象的方式,让开发者可以更加便捷地进行数据持久化操作。Hibernate基于JDBC,但对JDBC进行了封装,...
### Hibernate简介与快速入门 #### 一、Hibernate概述 Hibernate是一种强大的开源对象关系映射(ORM)框架,它提供了一种高效的方式将面向对象的数据模型映射到关系型数据库的表结构中。Hibernate最初由Gavin King...
【J2EE与Hibernate简介】 在Java企业级应用开发领域,J2EE(Java 2 Platform, Enterprise Edition)是一个标准的平台,它提供了一个统一的框架来构建分布式、多层的应用程序。J2EE涵盖了服务器端组件模型、数据库...
一.持久化:将内存中的瞬时态数据保存成数据库中持久态数据的操作 1.瞬时态:以new命令实例化后从未用session将其与数据库关联(保存)过的... 2.Hibernate映射文件:Hibernate映射文件是Hibernate与数据库进行持久化的桥梁
**Hibernate 概述** Hibernate 是一个开放源代码的 Java 库,它提供了对象关系映射(ORM)解决方案,使得开发者可以使用面向对象的方式来操作数据库,而无需关心底层的 SQL 语句。ORM 解决了传统应用程序中面向对象...
移动商务应用软件开发第8章Hibernate简介及功能实现.ppt
5. **Hibernate简介** Hibernate 是最受欢迎的ORM框架之一,因其灵活性和高效性而备受青睐。它提供了丰富的API和配置选项,支持多种数据库,包括事务管理、第二级缓存等功能。由于其活跃的社区支持和持续的更新,...
Hibernate 简介 Hibernate 是一个开源的Java Persistence Framework,它提供了一种对象关系映射的解决方案,帮助开发者轻松地访问和操作关系数据库。Hibernate 的主要特点是:支持多种数据库管理系统、提供了高效的...
**核心接口简介** 1. **Session接口**:Session是与数据库交互的主要接口,它负责执行持久化对象的创建(Create)、读取(Read)、更新(Update)和删除(Delete)操作。由于Session不是线程安全的,所以在多线程...
本人所有资源完全原创,此文可以作为新手入门之砖,也可以作为老人的茶余饭后。欢迎下载。联系我:shansun123@126.com
一、Hibernate简介 Hibernate是一个强大的ORM(Object-Relational Mapping)框架,它致力于简化Java应用程序的持久层开发。通过Hibernate,开发者可以将Java对象映射到数据库表,从而实现对数据库的操作,而无需直接...
【教育】移动商务应用软件开发第8章主要探讨的是Hibernate框架在JavaEE环境下的应用,这是构建现代企业级移动商务应用程序的重要技术之一。本章旨在让学习者掌握使用Hibernate进行数据持久化的技能,以及理解软件...
一、hibernate 简介 Hibernate 是一个流行的 Java 应用程序框架,主要用于简化对象关系映射(ORM)的过程。它允许开发者使用面向对象的方式来操作数据库,通过自动映射数据库表为 Java 对象,从而避免了手动编写 ...
【hibernate简介】 Hibernate是一个开源的Java框架,主要用于简化企业级应用中的对象关系映射(Object-Relational Mapping,ORM)。它允许开发者将数据库操作转换为对Java对象的操作,从而降低了开发人员处理SQL和...
一、Hibernate简介 Hibernate作为一款强大的持久层框架,它简化了Java应用程序与数据库之间的交互。通过对象-关系映射(ORM),Hibernate可以自动将Java对象转化为数据库中的记录,并反之。这样,开发者无需编写大量...
Hibernate简介** Hibernate是由 Gavin King 创建的一个开源项目,它实现了JPA(Java Persistence API)规范,提供了一种在Java应用中持久化对象的机制。通过Hibernate,我们可以避免编写大量的SQL语句,而是通过...