首先: 什么是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简介.docHibernate简介.doc
Hibernate简介与快速入门,中软国际培训资料
JAVA学习资料-Hibernate简介
一.持久化:将内存中的瞬时态数据保存成数据库中持久态数据的操作 1.瞬时态:以new命令实例化后从未用session将其与数据库关联(保存)过的... 2.Hibernate映射文件:Hibernate映射文件是Hibernate与数据库进行持久化的桥梁
浪磬[VIP][强化]J2EE第一期 Hibernate专题 第一讲 Hibernate简介源码和ppt.
教育移动商务应用软件开发第8章Hibernate简介及功能实现.ppt
移动商务应用软件开发第8章Hibernate简介及功能实现.ppt
本人所有资源完全原创,此文可以作为新手入门之砖,也可以作为老人的茶余饭后。欢迎下载。联系我:shansun123@126.com
值得一看,需要的请下载!!!!!!!!!!
文档内容的来源与我的博客,如果文档中相关的内容有所格式错误,请参考我的博文专栏,还请见谅,文章讲解的主要技术是Hibernate相关。如有差错还望海涵!
Hibernate介绍,介绍了Hibernate相关的知识点,是入门的一份文档!
001 Hibernate 简介(开源 O/R 映射框架) 002 第一个 Hibernate 示例 003 hibernate 主要接口介绍 004 持久对象的生命周期介绍 005 query 接口初步 006 开源 O/R 映射框架内容回顾 007 Hibernate 基本映射标签和属性...
Hibernate 简单介绍 Hibernate 简单介绍
12.1.1 Hibernate简介 12.1.2 下载Hibernate 12.1.3 配置Hibernate 12.2 Hibernate的核心 12.2.1 Configuration(配置Connection) 12.2.2 SessionFactory(Connection工厂) 12.2.3 Session(提供Connection) 12.3...
Hibernate 简介 Hibernate 开发流程 Hibernate 配置文件 Hibernate 核心接口和类 Hibernate ORM映射 HQL Hibernate 懒加载机制与抓取策略 Hibernate 缓存 Hibernate 锁机制
hibernate知识简介.ppt
12.1.1 Hibernate简介 12.1.2 下载Hibernate 12.1.3 配置Hibernate 12.2 Hibernate的核心 12.2.1 Configuration(配置Connection) 12.2.2 SessionFactory(Connection工厂) 12.2.3 Session(提供Connection) 12.3...