Hibernate是什么?
Hibernate是一个数据持久层框架,是一种实现对象和关系之间映射(O/R Mapping)的工具,它对JDBC进行了轻量级的对象封装,使程序员可以使用对象编程思想来操作数据库(java是面向对象编程)。相对于使用JDBC和SQL来操作数据库,使用Hibernate能大大的提高实现的效率。
什么是对象关系映射?
ORM(Object Relational Mapping)就是在指关系型数据库和对象之间作一个映射,这样 , 我们在具体的操作数据库的时候, 就不需要再去和复杂的SQL语句打交道,只要像平时操作对象一样操作它就可以了 。当前ORM框架主要有五种:Hibernate(Nhibernate),iBATIS,mybatis,EclipseLink,JFinal。
1:是一种程序技术,用于面向对象编程语言里不同类型系统的数据之间的转化。
2:Object 对象,pojo,Java对象,此处特指JavaBean。
3:Relation 关系,二维表,指数据库中的表。
4:Mapping 映射,该框架为了解决Java对象和数据表之间的映射关系。
Hibernate的优点是什么?
1:提高编写代码效率。少写代码,不用在写jdbc,用session管理。hibernate提供了大量的封装(这也是它最大的缺 点),很多数据操作以及关联关系等都被封装的很好,开发者不需写大量的sql语句,这就极大的提高了开发者的开发 效率。
2:使得开发更加对象化。只要操作对象就可以把数据存到数据库中。
3:可移植性好。项目dao层操纵对象,无关数据库,耦合性低。更换数据库只需要更改配置的适配器(方言)。
4:透明持久化。Hibernate没有侵入性。
5:缓存机制的使用。hibernate提供了缓存机制(session缓存,二级缓存,查询缓存),对于那些改动不大且经常使用的数据,可以将它们放到缓存中,不必在每次使用时都去查询数据库,提高性能(少访问数据库)。
Hibernate的缺点是什么?
1:对持久层封装过于完整,导致开发人员无法对SQL进行优化。Hibernate封装了JDBC,所以比JDBC直接访问数据库 效率低。(全表映射,增删改查会把表中所有字段全部查询,放到对象里面)
2:配置过于复杂,一旦遇到大型项目,比如300张表以上,配置文件和内容是非常庞大的。如果采用注解,配置量少, 但是程序可读性不好(个人觉得)。
3:Hibernate在批量数据处理时有弱势,对于批量的修改,删除,不适合用Hibernate。