1.什么是Hibernate Framework?
对象关系映射或对象关系管理(ORM)是将应用程序域模型对象映射到关系数据库表的编程技术。Hibernate是基于Java的ORM工具,它提供了一个框架,用于将应用程序域对象映射到关系数据库表,反之亦然。java
Hibernate提供了Java Persistence API的参考实现,使其成为具备松散耦合优点的ORM工具的绝佳选择。咱们可使用Hibernate持久性API进行CRUD操做。Hibernate框架提供了使用JPA批注以及基于XML的配置将纯旧的Java对象映射到传统数据库表的选项。面试
一样,Hibernate配置也很灵活,能够从XML配置文件以及以编程方式完成。sql
2.使用Hibernate Framework有哪些重要好处?
使用Hibernate框架的一些重要好处是:数据库
- Hibernate消除了JDBC附带的全部样板代码,并负责管理资源,所以咱们能够专一于业务逻辑。
- Hibernate框架提供对XML和JPA注释的支持,这使咱们的代码实现独立。
- Hibernate提供了一种与SQL相似的强大查询语言(HQL)。可是,HQL彻底面向对象,而且了解诸如继承,多态性和关联之类的概念。
- Hibernate是Red Hat Community的一个开源项目,已在全球范围内使用。这使它成为比其余方法更好的选择,由于学习曲线很小,而且有大量的在线文档,而且能够在论坛中轻松得到帮助。
- Hibernate易于与其余Java EE框架集成,所以很是流行,Spring框架提供了将Hibernate与Spring应用程序集成的内置支持。
- Hibernate支持使用代理对象进行延迟初始化,而且仅在须要时才执行实际的数据库查询。
- Hibernate缓存有助于咱们得到更好的性能。
- 对于数据库供应商特定的功能,Hibernate是合适的,由于咱们还能够执行本机sql查询。
Hibernate在前几年是比较流行,如今感受没落了,它包含您在ORM工具中将须要的全部功能。编程
3.解释Hibernate架构。

4. get和load方法之间有什么区别?
下面给出了get()和load()方法之间的区别。缓存
没有。 |
get()** |
load() |
1) |
若是找不到对象,则 返回null 。 |
若是找不到对象,则引起ObjectNotFoundException 。 |
2) |
get()方法老是命中数据库。 |
load()方法不会访问数据库。 |
3) |
它返回一个真实的对象,而不是proxy 。 |
它返回一个代理对象。 |
4) |
若是您不肯定实例是否存在,则应使用它。 |
若是您肯定实例存在,则应使用它。 |
5. Hibernate与JDBC相比有什么优点?
Hibernate框架相对于JDBC的一些重要优势是:架构
- Hibernate删除了JDBC API附带的许多样板代码,这些代码看起来更清晰易读。
- Hibernate支持继承,关联和集合。JDBC API不提供这些功能。
- Hibernate隐式提供事务管理,实际上,大多数查询没法在事务外部执行。在JDBC API中,咱们须要使用commit和rollback编写用于事务管理的代码。
- JDBC API抛出SQLException ,这是一个已检查的异常,所以咱们须要编写许多try-catch块代码。在大多数状况下,它在每一个JDBC调用中都是多余的,用于事务管理。Hibernate包装JDBC异常并抛出JDBCException或HibernateException未经检查的异常,所以咱们不须要编写代码来处理它。Hibernate内置的事务管理功能消除了try-catch块的使用。
- Hibernate查询语言(HQL)更加面向对象,而且与Java编程语言很是接近。对于JDBC,咱们须要编写本机SQL查询。
- Hibernate支持更好的性能缓存,不缓存JDBC查询,所以性能低下。
- Hibernate提供了一些选项,经过它们咱们也能够建立数据库表,由于JDBC表必须存在于数据库中。
- Hibernate配置可帮助咱们将JDBC之类的链接以及JNDI DataSource用于链接池。这是企业应用程序中很是重要的功能,而JDBC API彻底没有。
- Hibernate支持JPA批注,所以代码独立于实现,可轻松地用其余ORM工具替换。JDBC代码与应用程序紧密结合。
欢迎关注
Java架构师社区公众号.
本文转载自
Java架构师必看 ,更多内容点击查看!