Hibernate
特点:
- Hibernate是一个操作数据库的框架,实现了对JDBC的封装。
- Hibernate是一个ORM(对象关系映射)框架,我们在写程序时,用的是面向对象的方法,但是在关系型数据库里,存的是一条条的数据,为了用面向对象的思想解决问题,所以需要将程序中的对象和数据库中的记录建立起映射关系,ORM就是这样的技术,而Hibernate就是在ORM技术基础上的框架。通过操作对象完成对数据库中记录的操作。
- Hibernate简化了代码的编写,原生态的JDBC需要书写定量的代码来实现操作数据库。而运用Hibernate框架只需要很少量的代码即可完成操作。
- Hibernate框架屏蔽了数据库的差异,增强了对数据库的可移植性。
Hibernate的优缺点:
优点:
- 对象化。可以让开发人员通过操作对象实现对数据库的操作。
- 更好的移植性。hibernate使用xml或者JPA的配置以及数据库方言等等的机制,是的hibernate具有更好的移植性,对于不同的数据库,开发者只需要使用相同的数据操作即可,无序关心数据库之间的差异。
- 开发效率高。hibernate框架提供了大量的封装(同时也是最大的缺点),很多数据操作以及关联关系等都被封装的很好,开发者不需要写大量的sql语句,这就几大的提高了开发者的开发效率。
- 缓存机制的使用。hibernate提供了缓存机制(session缓存,二级缓存,查询缓存),对于那些改动不大且经常使用的数据,可以将他们放到缓存中,不必在每次使用的时候都去查询数据库,缓存机制对提升性能有裨益。
缺点:
- hibernate在批量处理数据时候有弱势,对于批量的修改,删除,不适合用hibernate,这也是PRM框架的弱点。
- 由于对持久层封装过于完整,导致开发人员无法对SQL进行优化,无法零花的使用JDBC的原生SQL。Hibernate封装了JDBC,所以没有JDBC直接访问数据库效率高。要使用数据库的特定优化机制时,不适合用hibernate
- 框架中使用ORM技术,导致配置过于复杂,一旦遇见大型项目,比如300张表以上,配置文件和内容是非常庞大的,另外DTO满天飞,性能和维护问题随之而来。
- 如果项目集中各个表中关系复杂,表之间的关系很多,在很多地方把lazy都设置false,会导致数据查询和加载很慢,尤其是级联查询的时候。
二、使用Hibernate的基本流程:配置实现类与数据库表的映射关系,产生sessionFactory,打开session通道拿到session对象,开启事务,完成操作,关闭session。
使用Hibernate时,先要配置hibernate.cfg.xml文件,其中配置数据库连接信息和方言等。还要为每个实体配置相应的hbm.xml文件(映射文件),也可以采用注解的方式实现映射关系。在hibernate.cfg.xml中需要等级每个hbm.xml文件。