首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果HIbernate使用JDBC本身,它到底会做什么?

如果HIbernate使用JDBC本身,它到底会做什么?
EN

Stack Overflow用户
提问于 2019-04-08 11:25:45
回答 2查看 688关注 0票数 0

我是Hibernate的初学者,在学习它的时候,我偶然发现了它在幕后使用JDBC的概念。如果是这样的话,Hibernate到底有什么用呢?我知道它的优点,如HQL,注释,ORM特性等。那么在幕后总是JDBC做工作吗?JDBC和Hibernate有什么不同的职责?

EN

回答 2

Stack Overflow用户

发布于 2019-04-08 12:40:21

SQL statements

  • mapping SQL查询结果(以s的形式)映射到objects

的SQL

  • Hibernate执行ORM layer
  • 映射。

将SQL语句以ResultSets格式发送到database

  • reading查询结果时,
  • JDBC执行数据库连接

  • 数据库
    • 执行SQL语句以更新data
    • executes SQL语句以查询数据
    • 管理数据和indexes

值得注意的是,不同的数据库(MySQL、Oracle、MSSQL、Postgres、H2、HSQLDB、Apache DB)具有不同的驱动程序实现,因此需要不同的JDBC驱动程序。如果不使用JDBC,Hibernate将需要自己实现这些驱动程序。

票数 4
EN

Stack Overflow用户

发布于 2019-04-08 12:50:02

它为我们提供了我们应该寻找的优势。

1.)缓存机制:如果您的应用程序使用大量静态数据,那么缓存将是一个很好的选择,并且hibernate支持透明缓存。

2.)管理会话、事务等。

3.)减少编写查询的工作量,增加Hibernate的实用程序,如查询API、标准API、HQL

4.)开发人员的生产力:查询本身的性能通常比手工编码的查询更差,因为它不能针对每种特定情况进行优化。Hibernate通过使用缓存很好地弥补了这一点。

5.)数据库更改:如果更改数据库,如将MySQL更改为Oracle,并且使用Hibernate,则无需更改任何实现代码。但是如果您使用原始JDBC和原始查询,而不是JPA或HQL,那么您必须更改更多的查询。因为原始查询可能会根据数据库供应商的实现而改变。

Hibernate是一个非常强大的数据持久化和ORM解决方案,包括JPA实现。此外,在Hibernate中定义了许多方法来管理实体、如何持久化、事务等。JDBC模板只是一个简单的工具,可以帮助您管理SQL查询和事务。将其描述为JDBC包装器或帮助器可能更合适。如果您喜欢自己管理数据库查询(SQL),或者如果您是初学者,使用Spring将帮助您理解它是如何工作的。即使您正在开发更大的应用程序,也可以考虑使用Hibernate。只需小心Hibernate的学习曲线即可。

总而言之,如果你在一个相对较小的项目中工作,你也可以使用JDBC,但在中型到大型项目中,使用一些不一定是Hibernate的ORM解决方案总是很有帮助的。此外,对于大型项目,我们使用连接池从数据库获取连接。像c3p0这样的连接池类库要多得多。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55565832

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档