Hibernate简介
2014-10-30 17:35
253 查看
我们从几个方面进行阐述Hibernate
When? What ? How?
Gavin King,一个充满激情,脾气倔强,不言败的人,在2001花费了两年时间,开发出了称为全世界流行的O/R Mapping的
工具。
Hibernate是一个对象关系映射(ORM)框架,它对JDBC进行了非常轻量级的对象封装,使得可以使用对象编程思维
来操纵数据库。看到这里应该了解到Hibernate也是一个持久层框架。
ORM的简单规则:
类跟表对应
类属性与表字段对应
类实例与表中具体一条记录对应
一个类可与多个表对应,一个表也可对应多个类
DB中表与表之间的关系(如:外键)映射成为Object之间的关系
Hibernate有6大接口
Session、SessionFactory、Transaction、Query、Criteria和Configuration
(图片引自/article/1375786.html)
2SessionFactroy接口:负责初始化Hibernate。它充当数据存储源的代理,并负责创建Session对象。
它是线程安全的,这意味着它的同一个实例可以被应用的多个线程共享。
它是重量级的,这意味着不能随意创建或销毁它的实例。如果应用只访问一个数据库,只需要创建一个SessionFactory实例
3Session接口:负责执行被持久化对象的CRUD操作(CRUD:增读更删)。但需要注意的是Session对象是非线程安全的。因此在设计软件架构的时候,应该避免多个线程共享一个Session实例。同时,Hibernate的session不同于JSP应用中的HttpSession。
4Query和Criteria接口:Query和Criteria接口负责执行各种数据库查询。它可以使用HQL语言或SQL语句两种表达方式。
5Transaction接口:是Hibernate的数据库的数据库事务接口,它对底层的事务接口做了封装。底层事务接口包括:
1.jdbc API
2.JTA(J***A Transation API)
3.CORBA(Common Object Request Broker Architecture) API
任何事物都有两面,Hibernate也不例外
简化了DAO层编码工作,使开发更对象化了
移植性好,支持各种数据库,如果换个数据库只要在配置文件中变换配置就可以了,不用改变hibernate代码
支持透明持久化。透明是针对上层而言的
复杂表操作就Over了
When? What ? How?
When?
Hibernate由来是由于当时EJBBean1.1在处理entittBean架构时,花费的时间要比业务逻辑更多而且限制也太多。Gavin King,一个充满激情,脾气倔强,不言败的人,在2001花费了两年时间,开发出了称为全世界流行的O/R Mapping的
工具。
What?
了解了历史,再看看Hibernate是什么?Hibernate是一个对象关系映射(ORM)框架,它对JDBC进行了非常轻量级的对象封装,使得可以使用对象编程思维
来操纵数据库。看到这里应该了解到Hibernate也是一个持久层框架。
ORM的简单规则:
类跟表对应
类属性与表字段对应
类实例与表中具体一条记录对应
一个类可与多个表对应,一个表也可对应多个类
DB中表与表之间的关系(如:外键)映射成为Object之间的关系
How?
Hibernate都给我们做了哪些,如何体现它的优点Hibernate有6大接口
Session、SessionFactory、Transaction、Query、Criteria和Configuration
接口间关系
(图片引自/article/1375786.html)
自上而下的调用
1Configuration接口:负责配置并启动Hibernate,创建SessionFactory对象。在Hibernate的启动的过程中,Configuration类的实例首先定位映射文档位置、读取配置,然后创建SessionFactory对象。2SessionFactroy接口:负责初始化Hibernate。它充当数据存储源的代理,并负责创建Session对象。
它是线程安全的,这意味着它的同一个实例可以被应用的多个线程共享。
它是重量级的,这意味着不能随意创建或销毁它的实例。如果应用只访问一个数据库,只需要创建一个SessionFactory实例
3Session接口:负责执行被持久化对象的CRUD操作(CRUD:增读更删)。但需要注意的是Session对象是非线程安全的。因此在设计软件架构的时候,应该避免多个线程共享一个Session实例。同时,Hibernate的session不同于JSP应用中的HttpSession。
4Query和Criteria接口:Query和Criteria接口负责执行各种数据库查询。它可以使用HQL语言或SQL语句两种表达方式。
5Transaction接口:是Hibernate的数据库的数据库事务接口,它对底层的事务接口做了封装。底层事务接口包括:
1.jdbc API
2.JTA(J***A Transation API)
3.CORBA(Common Object Request Broker Architecture) API
任何事物都有两面,Hibernate也不例外
Hibernate优点:
使用简介的hql语句,如插入数据:原来的做法是:insert into 表名称 alue(值1,值2,值3,……),而现在的做法是:save(对象)。简化了DAO层编码工作,使开发更对象化了
移植性好,支持各种数据库,如果换个数据库只要在配置文件中变换配置就可以了,不用改变hibernate代码
支持透明持久化。透明是针对上层而言的
Hibernate缺点:
若是大量数据批量操作。则不适合使用Hibernate。复杂表操作就Over了
小结:
了解了Hibernate的来源,以及它的工作原理和优缺点。相信不会再说Hibernate不了解了吧。对于ORM的框架,有多种,如:Nhibernate,Entity,EJB.我们首先要了解总体,细节一定会明白的,但是不能一下子就扎进去了。Hibernate简介你了解么?相关文章推荐
- 史上最简单的Hibernate入门简介
- 缓存简介--Cache In Hibernate: @Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
- 史上最简单的Hibernate入门简介
- hibernate事务简介
- Hibernate(1)Hibernate简介和简单示例,了解Hibernate事务回滚用法
- 使用Hibernate+Middlegen实现自动代码生成简介
- hibernate_简介
- hibernate简介(Session,几种状态,方法······等)
- Hibernate的简介
- jsp Hibernate 函数简介
- java框架简介1----Hibernate架构使用方法简介
- 学习史上最简单的Hibernate入门简介有感
- java框架简介1--spring+hibernate简介 2 用例驱动编程
- Spring+Struts+Hibernate 简介(转)
- 【迷你微信】基于MINA、Hibernate、Spring、Protobuf的即时聊天系统:6.技术简介之Protobuf
- Hibernate 3注释简介
- 【hibernate】——简介
- Hibernate的发展和特点以及Hibernate的工作原理简介
- Hibernate视频学习笔记(1)主要接口简介及示例
- hibernate框架_批量查询(简介)