**什么是Hibernate框架**
百度百科定义:Hibernate框架是一个开源的对象关系映射(orm)框架,是对jdbc的轻量级的对象封装,让java程序员可以使用对象思维来操作数据库(db).
用简单的话来说就是Hibernate里面有特有的方法来操作数据库,来进行数据的增删查改。不用自己手写一些sql语句,通过把你写的数据库表实例化成为一个java对象,可以同过配置xml或者注解的方式来让你的java实体与数据库表相关联,让后调用Hibernate中的一些方法来实现数据库的操作。
hibernate的优势
1、对象化。hibernate可以让开发人员以面向对象的思想来操作数据库。jdbc只能通过SQL语句将元数据传递给数据库,进行数据库操作。而hibernate可以在底层对元数据和对象进行转化,使开发者只用面向对象的方式来存取数据即可。
2、更好的移植性。hibernate使用xml或者jpa(注解)的配置以及数据库的语言等机制,使得hibernate具有更好的移植性,对于不同的数据,开发者只需要使用相同的数据操作即可,无需关心数据库之间的差异。而直接使用Jdbc就要考虑不同的数据库语言的不同的问题。
3、开发效率高。hibernate提供了大量的封装方法,很多数据库操作以及关联关系等都是被封装的很好,开发者不需要编写大量的SQL语句,这就提高了开发者的开发效率。
4、缓存机制的使用。hibernate提供了缓存机制(session缓存,二级缓存,查询缓存),对于那些改动不大且经常使用的数据,可以将它们放入到缓存中,不必在每次使用时都去查询数据库,缓存机制对提升性能大有裨益。
hibernate的缺点
1、对于持久层封装过于完整,导致开发人员无法对SQL进行优化
2、框架中使用ORM原则,导致配置过于复杂
3、执行效率和原生的Jdbc相比偏差;特别是在批量数据处理的时候不支持批量修改,删除。