本文主要是从一个宏观的角度来认识 Hibernate, 对为什么用 Hibernate 进行一些说明 , 通过指导并了解 Hibernate 的特性及其优缺点可以让我们在以后的项目中根据具体的情况进行选择 .
Hibernate, 英文单词的意思是冬眠 . 冬眠这个词估计跟持久化有很大的关系 . Hibernate 是一个开放源代码的对象关系映射框架,它对 JDBC 进行了非常轻量级的对象封装,使得我们可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate 可以应用在任何使用 JDBC 的场合,既可以在 Java 的客户端程序实用,也可以在 Servlet/JSP 的 Web 应用中使用,能够完成数据持久化的重任。
Hibernate 架构图
为什么会出现 Hibernate?
因为我们在用JDBC对数据库进行操作的时候会产生很多冗余,重复的内容。而使用hibernate可以运用面向对象的思维来对数据库进行操作 , 并且它是轻量级的框架,不需要服务器,测试比较方便、简单。
既然我们选择Hibernate,那么它本身定有优秀的地方吸引着我们,Hibernate都有哪些优点呢?
使用 Hibernate 的优点 ?
- 可以根据对象生成数据库 . 在一定程度屏蔽数据库 , 按照面向对象的思想开发 .(OOA,OOD,OOP)
- 提高生产率 , 简化代码的编写 . 跟数据库打交道的代码一般会是 java 中乏味的代码 , 取而代之的是简洁的 HQL.Hibernate 可以让那些重复乏味的代码减少 , 让你集中更多的精力到业务上 .
- 按照面向对象的思想开发 , 可以使我们采用对象化的思维操作关系型数据库 . 使开发更加对象化 .
- 具有良好的可移植性 , 可扩展性 .
- 没有侵入性 , 即轻量级框架 ( 类没有实现任何东西 , 这个类的对象就可以持久化 . 支持透明持久化 )
- Hibernate 是开源项目 .
Hibernate 给我们提供了一个更优的选择 , 但是它并不是万能 , 凡事有利有弊 , 它自身也有着自己的不足之处 . 主要的不足有以下三点 .
- 封装彻底 , 使用数据库的特性语句很难调优 , 不方便 .
- 大批量数据更新有问题 ( 因为缓存问题 .)
- 如果项目中大部分比例都是统计查询则不适合使用 hibernate . 更适合用 JDBC. 这同时也是 OR 框架的弱点 .
以上是从一个宏观的角度对 Hibernate 进行认识和了解 .通过 了解其特点 , 以及为什么用它可以帮助随后对 Hibernate 的具体内容的学习和掌握 .