【问题标题】:differences between spring jdbctemplate and Hibernate [duplicate]spring jdbctemplate和Hibernate之间的区别[重复]
【发布时间】:2013-06-25 15:14:50
【问题描述】:

我的问题很简单:Spring jdbcTemplate 和 Hibernate 之间的主要区别是什么?我们应该考虑使用其中一个或另一个的主要原因是什么?

谢谢

【问题讨论】:

  • Spring JDBC 模板不是 JPA/ORM 实现,hibernate 是。也许 spring-orm 到 hibernate 是一个更合适的比较。

标签: java spring hibernate jdbctemplate


【解决方案1】:

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

【讨论】:

  • 感谢您的回复。那么我可以在不使用任何其他 spring 模块的项目中使用 Spring JdbcTemplate 吗?
  • 是的。只是要小心交易。我不确定事务管理器是否在没有代理/bean 的情况下正常工作。
  • 当我每天处理数百万条记录时,我更喜欢 spring-jdbc 等简单而干净的工具,它为我控制连接和事务,并为我提供所有原生 SQL 能力来执行最佳查询每种情况
  • 顺便说一句,您也可以在 Hibernate 中使用本机 SQL 查询,但您将失去数据库引擎的独立性。
【解决方案2】:

这一切都取决于。如果您进行大量域对象到数据库表的映射,Hibernate 是您想要查看的解决方案。如果您正在编写执行大量复杂连接/PL-SQL 的报告工具,请查看 Spring JDBC 模板。

【讨论】:

  • 除了避免样板代码和自动关闭连接之外,还有什么理由选择 JDBCtemplate 而不是普通的 jdbc?
  • 我的情况是我有大约 100 个查询。无论普通 jdbc 或 jdbctemplate 是什么,我都必须传递查询或硬编码或将其作为常量放在接口中...但代码看起来很笨拙。我想我最好使用普通的 jdbc,所以我可以控制
  • 任何你可以在普通 JDBC 中做的事情,你都可以在 JdbcTemplate 中做,但是要容易得多。我强烈建议尽可能使用 JdbcTemplate 或 NamedParameterJdbcTemplate。如果您还没有出售它,我建议您多阅读一下 JdbcTemplate。
猜你喜欢
  • 2013-05-16
  • 2018-03-24
  • 2015-04-01
  • 2021-05-24
  • 1970-01-01
  • 1970-01-01
  • 2015-05-19
  • 2014-08-16
  • 2011-04-08
相关资源
最近更新 更多