国内最全IT社区平台 联系我们 | 收藏本站
华晨云阿里云优惠2
您当前位置:首页 > 互联网 > [置顶] Hibernate简介

[置顶] Hibernate简介

来源:程序员人生   发布时间:2014-11-19 09:04:26 阅读次数:3278次

我们从几个方面进行论述Hibernate

When? What ? How?

When?

 Hibernate由来是由于当时EJBBean1.1在处理entittBean架构时,花费的时间要比业务逻辑更多而且限制也太多。

Gavin King,1个充满豪情,脾气倔强,不言败的人,在2001花费了两年时间,开发出了称为全球流行的O/R Mapping

工具。

What?

了解了历史,再看看Hibernate是甚么?

 Hibernate是1个对象关系映照(ORM框架,它对JDBC进行了非常轻量级的对象封装,使得可使用对象编程思惟

来操纵http://www.wfuyu.com/db/。看到这里应当了解到Hibernate也是1个持久层框架。

 ORM的简单规则:

类跟表对应

类属性与表字段对应

类实例与表中具体1条记录对应

1个类可与多个表对应,1个表也可对应多个类

DB中表与表之间的关系(如:外键)映照成为Object之间的关系


How?

Hibernate都给我们做了哪些,如何体现它的优点

Hibernate6大接口

Session、SessionFactory、Transaction、Query、Criteria和Configuration

接口间关系


(图片引自http://blog.csdn.net/jiuqiyuliang/article/details/39078749

自上而下的调用

1Configuration接口:负责配置并启动Hibernate,创建SessionFactory对象。在Hibernate的启动的进程中,Configuration类的实例首先定位映照文档位置、读取配置,然后创建SessionFactory对象。

2SessionFactroy接口:负责初始化Hibernate。它充当数据存储源的代理,并负责创建Session对象。

  • 它是线程安全的,这意味着它的同1个实例可以被利用的多个线程同享。
  • 它是重量级的,这意味着不能随便创建或烧毁它的实例。如果利用只访问1个http://www.wfuyu.com/db/,只需要创建1个SessionFactory实例

3Session接口:负责履行被持久化对象的CRUD操作(CRUD:增读更删)。但需要注意的是Session对象是非线程安全的。因此在设计软件架构的时候,应当避免多个线程同享1个Session实例。同时,Hibernatesession不同于JSP利用中的HttpSession

4QueryCriteria接口:QueryCriteria接口负责履行各种http://www.wfuyu.com/db/查询。它可使用HQL语言或SQL语句两种表达方式。

5Transaction接口:是Hibernate的http://www.wfuyu.com/db/的http://www.wfuyu.com/db/事务接口,它对底层的事务接口做了封装。底层事务接口包括:

  •    1.jdbc  API
  •    2.JTAJAVA Transation API
  •    3.CORBA(Common Object Request Broker Architecture) API

 

任何事物都有两面,Hibernate也不例外

Hibernate优点:

  • 使用简介的hql语句,如插入数据:原来的做法是:insert into 表名称 alue(值1,值2,值3,……),而现在的做法是:save(对象)。
  • 简化了DAO层编码工作,使开发更对象化了
  • 移植性好,支持各种http://www.wfuyu.com/db/,如果换个http://www.wfuyu.com/db/只要在配置文件中变换配置就能够了,不用改变hibernate代码
  • 支持透明持久化。透明是针对上层而言的

Hibernate缺点:

  • 若是大量数据批量操作。则不合适使用Hibernate。
  • 复杂表操作就Over

小结:

了解了Hibernate的来源,和它的工作原理和优缺点。相信不会再说Hibernate不了解了吧。对ORM的框架,有多种,如:Nhibernate,Entity,EJB.我们首先要了解整体,细节1定会明白的,但是不能1下子就扎进去了。Hibernate简介你了解么?

 

生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠
程序员人生
------分隔线----------------------------
分享到:
------分隔线----------------------------
关闭
程序员人生