常见面试题十二--请简述Hibernate的有缺点

Hibernate是一种ORM框架,可以帮助程序员方便的实现透明的持久化操作,它的优点主要有以下的几个方面:

  1. Hibernate实现了基于POJO的持久化操作,框架对于POJO完全没有侵入,因此程序员完全不需要关机对象持久化的细节,从而提升了开发效率;
  2. Hibernte提供了HQL和QBC作为查询工具,而不是使用传统的SQL,这两种查询方法都提供了丰富的面向对象机制,缓解了系统的阻抗不匹配问题
  3. 操作数据据的SQL由Hibernate根据hibernate.cfg.xml我呢件当中所指定的数据库方言生成,方便应用程序在不同的数据库之间移植;
  4. Hibernate当中内置了一级和二级缓存,提升了操作数据库的性能;

Hibernate在拥有以上优点的同时,也避免不了ORM框架的通病。如N+1问题,也就是使用类似于select * from User u这样的HQL语句查询时,如果数据库当中有N条数据,Hibernate就需要运行N+1条SQL语句,这大大影响了系统的姓能。另外Hiberante的映射文件的编写也显得比较繁琐,容易出错

你可能感兴趣的:(sql,Hibernate,框架,面试,orm)