hibernate的特点是什么,用hibernate有什么好处?

作者&投稿:阎泼 (若有异议请与网页底部的电邮联系)
使用hibernate的优缺点~

Hibernate的优缺点:
1、不需要编写的SQL语句(不需要编辑JDBC),只需要操作相应的对象就可以了,就可以能够存储、更新、删除、加载对象,可以提高生产效;
2、因为使用Hibernate只需要操作对象就可以了,所以我们的开发更对象化了;
3、使用Hibernate,移植性好(只要使用Hibernate标准开发,更换数据库时,只需要配置相应的配置文件就可以了,不需要做其它任务的操作);
4、Hibernate实现了透明持久化:当保存一个对象时,这个对象不需要继承Hibernate中的任何类、实现任何接口,只是个纯粹的单纯对象—称为POJO对象(最纯粹的对象—这个对象没有继承第三方框架的任何类和实现它的任何接口)
5、Hibernate是一个没有侵入性的框架,没有侵入性的框架我们一般称为轻量级框架
6、Hibernate代码测试方便。 只要你hibernate学到家了,用起来绝对比写sql语句爽......这是俺们导师说的!哈哈~

既然是初学,你可以简单的理解为:
第一:数据库连接不需要我们自己来管理,如打开和关闭(优点吧)
第二:Hibernate对原来的SQL语句进行了封装,以前写很多SQL语句,现在你在保存的时候直接可以用 SAVE(对象)来实现了。(节省代码吧)
第三:原来是对表操作,现在是对对象操作,想法上是不是更好呢?都是对象。

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优点
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编程。



数据持久化操作变得比较方便,一般的CUD操作不用SQL语句就可以。

hibernate的特点 : 解决了直接用JDBC操作数据库的烦琐操作。屏蔽了各种数据库的实现细节。
Hibernate和Mybatis它们的编码复杂度为O(n),也就是说每操作一个DB的表,就要写一次dao。
1) 编码复杂度C(n)=O(n),即会随实体的增长,编码量呈线性增长。当n较大时,会增加许多工作量。
2) 需要写很多的判断字段是否为空(null) ,是否是空字符串的语句;工作重复,乏味。
3)实体Javabean与DB表的map映射文件太多;或者,实体Javabean文件注解用得太泛滥,太多注解难以记忆,增加开发人员负担。
4) Hibernate的概念太复杂,学习成本高,更新会先查询再更新,n+1问题。
一个十分钟即可学会的ORM框架--Bee , 编码复杂度是O(1).
编码复杂度是O(1),就是说ORM框架只写一次就行了,没必要写n次。
(想想数据结构中时间复杂度,空间复杂度从O(n)提升到O(1)对性能的影响有多大)。

java编程中,struts1,struts2,hibernate,spring,ajax分别有什么作用或者...
答:struts1,struts2应用于j2ee的MVC框架,主要用于页面展现,参数校验和处理,以及跳转控制;hibernate是j2ee的持久层框架,用来封装对JDBC的操作,避免了逻辑层直接写SQL语句,而是用HQL语句这种面向对象的操作去和数据库打交道,该框架封装了数据库存取的细节,对于业务层来说不必关心底层数据库,只需要调用API...

java框架hibernate的实体对象有哪三种状态?以及这三种状态下,对实体...
答:1. 瞬时状态: 当我们通过Java的new关键字来生成一个实体对象时,这时这个实体对象就处于自由状态。自由对象最大的特点就是,在数据库中不存在一条与它对应的记录。2. 持久状态: 持久化对象就是已经被保存进数据库的实体对象,并且这个实体对象现在还处于Hibernate的缓存管理之中。这是对该实体对象的...

hibernate Shards是什么?有什么作用?
答:Hibernate Shards是一个Hibernate应用横向分割的分布式数据库解决方案的框架。它可以让一个Hibernate应用比较简单地加入横向分割的数据库分布式功能。Hibernate Shards主要有以下特点:1,沿袭Hibernate标准编程模型 - 也就是说如果你已经熟悉了Hibernate,那么也就会了Hibernate Shards,不必要学习新的Hibernate Shards...

hibernate expression类里面方法有什么特点
答:Expression.gt:对应SQL条件中的"field > value "。如:Expression.gt("salary", new Integer(5000))Expression.ge:对应SQL条件中的"field >= value"。Expression.lt:对应SQL条件中的"field < value"。Expression.le:对应SQL条件中的"field <= value"。Expression.between:对应SQL条件中的"between...

Hibernate delete 问题
答:delete需要的是一个持久态对象,你传入的是一个瞬态对象,当然没有效果。什么是持久态对象,你从数据库get到的,你save后的,建议找本教程,或者百度一下,总之你刚new的对象肯定是瞬态对象。多解释一下,hibernate对象的三种状态,一。瞬态:刚new出来的对象,特点是无持久化标志,无session关联。二。

hiero是什么意思
答:Hiero是一款基于Java语言的开源代码编辑器,全称为Hibernate Tools, Hiero。它提供了许多方便的功能和插件,帮助开发人员更快速、高效地进行Java开发。Hiero代码编辑器的主要特点包括:代码自动补全:Hiero具有强大的代码自动补全功能,能够根据上下文自动提示代码,减少手动输入代码的工作量。语法高亮:Hiero支持...

跪解:ssh框架的基本原理?
答:Struts继承了MVC的各项特性,并根据J2EE的特点,做了相应的变化与扩展。Struts的工作原理,视图:主要由JSP生成页面完成视图,Struts提供丰富的JSP 标签库: Html,Bean,Logic,Template等,这有利于分开表现逻辑和程序逻辑。控制:在Struts中,承担MVC中Controller角色的是一个Servlet,叫ActionServlet。ActionServlet是一个通用的...

hibernate一级缓存和二级缓存的区别
答:一级缓存为 session缓存,二级缓存是sessionfactory缓存。

JAVA的简介?
答:主要特点: 1、提供单一登陆接口,多认证模式(LDAP或SQL); 2、管理员能通过用户界面轻松管理用户,组,角色; 3、用户能可以根据需要定制个性化的portal layout; 4、能够在主流的J2EE应用服务器上运行,如JBoss+Jetty/Tomcat,JOnAS; 5、支持主流的数据库,如PostgreSQL,MySQL; 6、使用了第三放的开源项目,如Hibernate, ...

Java开源框架是什么?
答:所以你不要再在意框架是什么东西,等你接触了就知道了。你把它当做一个工具来用,这就是框架。前台框架:jQueryMvc框架:Struts、spring Mvc核心框架:Springorm框架:Hibernate、Spring JDBC、myBatis。 已赞过 已踩过< 你对这个回答的评价是? 评论 收起 噗哈哈的汤圆 2015-01-07 · 超过53用户采纳过TA的回答...