20191118001-Hibernate入门-Hibernate介绍

1.1 Hibernate介绍

1.1.1 Hibernate框架简介

1. Hibernate 框架

       Hibernate是数据持久化工具,也是一个开放源代码的ORM解决方案。Hibernate内部封装了通过JDBC访问数据库的操作,向上层提供面向对象的数据访问API。
       Hibernate的创始人是Gavin King。

2. Hibernate 是ORM解决方案

       基于ORM,Hibernate在对象模型和关系数据库表之间建立了一座桥梁,通过Hibernate,程序员就不需要再使用SQL语句操作数据库中的表,使用API直接操作JavaBean对象就可以实现数据的持久化操作了(存储、查询、更改和删除等操作),这样做显著地降低了由于对象与关系型数据库在数据表现方面的范例不匹配导致的开发成本。

1.1.2 Hibernate框架的优缺点及适用场景

       如果我们范问数据库直接使用的是原始的JDBC方式,那么查询返回的是ResultSet对象,而ResultSet对象往往是不能够直接使用的。这样在整个查询过程中,就需要很多重复性的转换工作。而使用Hibernate实现持久化操作则能够省去频繁的类型转换以及使用JDBC的繁琐代码,如以下实例代码。

Session session=HibernateUtil.currentSession();
Query query=session.CreateQuery("from User");
List<User> users=(List<User>)query.list();

      在以上代码中HibernateUtil是一个自定义的工具类,用于后去Hibernate的Session对象,Session是Hibernate执行持久化操作的核心API。Hibernate处理数据库查询时,编写的代码非常的简洁。作为查询结果,可以直接获取一个存储着User实例的List集合实例,能够直接使用,避免了烦琐重复性的数据转换过程

1. Hibernate框架的优点
  • Hibarnate功能强大,是Java应用于关系数据库之间的桥梁,较之JDBC方式操作数据库,代码量大大减少,提高了持久化代码的开发速度,降低了维护成本。
  • Hibernate支持许多面向对象的特性,如组合、继承、多态等,使得开发人员不必在面向业务领域的对象模型和面向数据库的关系数据模型之间来回切换,方便开发人员进行领域驱动的面向对象的设计与开发、
  • 可移植性好。系统不会绑定在某个特定的关系型数据库上,对于系统更换数据库,通常只需要修改Hibernate配置文件即可正常运行。
  • Hibernate框架开源且免费。可以在需要时研究源代码,改写源代码,进行功能的定制,具有可扩展性。
2. Hibernate框架的缺点
  • 不太适合以数据为中心的大量使用存储过程的应用。
  • 大规模的批量插入、修改和删除不适合用Hibernate。

1.1.3 Hibernate与MyBatis的比较

       Hibernate与MyBatis都属于ORM框架,为数据层提供持久化操作的支持。

  • 相对于MyBatis的“SQL-Mapping”的ORM实现,Hibernate的ORM实现更加完善,并且提供了状态管理功能。Hibernate对数据的操作,针对的是Java对象,即使使用Hibernate的查询语言(HQL语句),其书写规则也是面向对象的。
  • Hibernate与具体的数据库的管理只需要在XML中配置即可,Hibernate开发者不需要关注SQL的生成与结果的映射,所有的HQL语句与具体使用的数据库无关,便于修改,移植性好。而MyBatis直接使用SQL语句,不同数据库可能会有差异,修改工作量大,可移植性差。
  • 由于直接使用SQL语句,所以MyBatis的使用灵活度高,而Hibernate对于关系模型的设计不合理,不规范的系统不适用。在不考虑缓存的情况下MyBatis到的执行效率也比Hibernate高一些。
发布了56 篇原创文章 · 获赞 17 · 访问量 6190

猜你喜欢

转载自blog.csdn.net/qq_43199016/article/details/103128781