谈谈你对hibernate的理解

面试官:谈谈你对hibernate的理解

回答:Hibernate是一个开放源代码的对象关系映射(ORM)框架,它对JDBC进行了非常轻量级的对象封装,使得java程序员可以随心所欲的使用对象编程思维来操纵数据库。

一、Hibernate是对JDBC进一步封装        原来没有使用Hiberante做持久层开发时,存在很多冗余,如:各种JDBC语句,connection的管理,所以出现了Hibernate把JDBC封装了一下,我们不用操作数据,直接操作它就行了。

  二、我们再从分层的角度来看        我们知道非常典型的三层架构:表示层,业务层,还有持久层。Hiberante也是持久层的框架,而且持久层的框架还有很多,比如:IBatis,Nhibernate,JDO,OJB,EJB等等。  

三、Hibernate是开源的一个ORM(对象关系映射)框架。       ORM,即Object-Relational Mapping,它的作用就是在关系型数据库和对象之间做了一个映射。从对象(Object)映射到关系(Relation),再从关系映射到对象。这样,我们在操作数据库的时候,不需要再去和复杂SQL打交道,只要像操作对象一样操作它就可以了(把关系数据库的字段在内存中映射成对象的属性)。  

 hibernate的工作原理?

使用Hibernate的基本流程是:

配置Configuration对象、

产生SessionFactory、

创建session对象,

启动事务

完成CRUD操作,

提交事务

关闭session。

hibernate的优缺点,和jdbc的区别

①. 优点:
>对 JDBC 访问数据库的代码做了封装,简化了数据访问层繁琐的重复性代码
>映射的灵活性, 它支持各种关系数据库, 从一对一到多对多的各种复杂关系.
>非侵入性、移植性会好
>缓存机制: 提供一级缓存和二级缓存

②. 缺点:
>无法对 SQL 进行优化
>框架中使用 ORM原则, 导致配置过于复杂 
>执行效率和原生的JDBC 相比偏差: 特别是在批量数据处理的时候
>不支持批量修改、删除

jdbc的缺点       

1、代码太繁琐了      

  2、不是面向对象的数据库操作      

  3、资源关闭的代码也很繁琐,每次都得打开、关闭       

4、没有做到数据缓存      

  5、移植性比较差       

优点:           因为是最低层的操作,所以效率比较高 

猜你喜欢

转载自blog.csdn.net/hezuo1181/article/details/82831346