码迷,mamicode.com
首页 > Web开发 > 详细

Hibernate学习:初识hibernate

时间:2015-02-05 09:39:14      阅读:201      评论:0      收藏:0      [点我收藏+]

标签:hibernate

一:S2SH框架流程图

技术分享

hibernate的作用就是在Dao层将model的数据持久化到DB数据库。

这幅图上没有标记spring,

其实spring贯穿整个过程:
spring面向接口编程:
spring将service注入到Action,
spring将dao注入到service
spring针对servic进行声明式的事务管理。


二:单独看hibernate

技术分享

hibernate的工作原理:

step1:创建Configuration:进行配置文件的装载操作,提取所有配置文件进行解析。

step2:创建SessionFactory对象:托尼各国创建好的Configurtation对象可以创建一个sessionFactory对象的实例,他是产生Session对象实例的工厂,它在整个应用中应该是唯一的。

step2:创建Session对象:Session对象类似于数据库的连接对象,可以理解为于数据库建立的一个连接,但他的功能比JDBC重的Connection的对象丰富很多。

step4开始一个事物  在Java中定义一个事物操作的开始,这是使用Hibernate进行持久化操作必不可少的步骤。

step5 进行持久化操作,在这个步骤中可以读取或者保存java对象。

step6 结束事物 显示的结束事物

step 7关不Session ,类似于释放数据库的连接。


三:hibernate的优点和缺点

Hibernate优点
(1) 对象/关系数据库映射(ORM)
它使用时只需要操纵对象,使开发更对象化,抛弃了数据库中心的思想,完全的面向对象思想
(2) 透明持久化(persistent)
带有持久化状态的、具有业务功能的单线程对象,此对象生存期很短。这些对象可能是普通的JavaBeans/POJO,这个对象没有实现第三方框架或者接口,唯一特殊的是他们正与(仅仅一个)Session相关联。一旦这个Session被关闭,这些对象就会脱离持久化状态,这样就可被应用程序的任何层自由使用。(例如,用作跟表示层打交道的数据传输对象。)            
(3) 事务Transaction(org.hibernate.Transaction)
 应用程序用来指定原子操作单元范围的对象,它是单线程的,生命周期很短。它通过抽象将应用从底层具体的JDBC、JTA以及CORBA事务隔离开。某些情况下,一个Session之内可能包含多个Transaction对象。尽管是否使用该对象是可选的,但无论是使用底层的API还是使用Transaction对象,事务边界的开启与关闭是必不可少的。 
(4) 它没有侵入性,即所谓的轻量级框架
(5) 移植性会很好
(6) 缓存机制,提供一级缓存和二级缓存
(7) 简洁的HQL编程
 
2. Hibernate缺点
(1)  Hibernate在批量数据处理时有弱势
(2) 针对单一对象简单的增删查改,适合于Hibernate,而对于批量的修改,删除,不适合用Hibernate,这也是OR框架的弱点;要使用数据库的特定优化机制的时候,不适合用Hibernate


Hibernate学习:初识hibernate

标签:hibernate

原文地址:http://blog.csdn.net/u013628152/article/details/43495097

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!