1、对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码;
2、Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现。他很大程度的简化DAO层的编码工作;
3、hibernate使用Java反射机制,而不是字节码增强程序来实现透明性;
4、hibernate的性能非常好,因为它是个轻量级框架。映射的灵活性很出色。它支持各种关系数据库,从一对一到多对多的各种复杂关系。
hibernate优点:
1、对象/关系数据库映射(ORM)
2、透明持久化(persistent)
3、事务Transaction(org.hibernate.Transaction)
应用程序用来指定原子操作单元范围的对象,它是单线程的,生命周期很短。它通过抽象将应用从底层具体的JDBC、JTA以及CORBA事务隔离开。某些情况下,一个Session之内可能包含多个Transaction对象。尽管是否使用该对象是可选的,但无论是使用底层的API还是使用Transaction对象,事务边界的开启与关闭是必不可少的。
4、它没有侵入性,即所谓的轻量级框架
5、移植性会很好
6、缓存机制,提供一级缓存和二级缓存
hibernate存在一级缓存和二级缓存,如果hibernate开启了二级缓存,在查询数据的时候,首先要去session缓存中也就是一级缓存中查询数据,如果没有找到数据就会到sessionfactory缓存中查询,也就是二级缓存中,在二级缓存也没有找到数据那就要去数据库中查询数据,hibernate缓存详见:http://mp.blog.csdn.net/postedit/79280600
7、 简洁的HQL编程
hibernate有优点那同样也有缺点:
1、Hibernate在批量数据处理时有弱势
2、针对单一对象简单的增删查改,适合于Hibernate,而对于批量的修改,删除,不适合用Hibernate,这也是OR框架的弱点;要使用数据库的特定优化机制的时候,不适合用Hibernate