Spring JdbcTemplate比Spring Data Jpa快吗?

时间:2019-11-06 13:56:19

标签: spring performance spring-data-jpa jdbctemplate

我们的客户强迫我们使用JdbcTemplate而不是Spring Data Jpa来开发Spring项目。但是,该应用程序在响应速度和传递方面并不关键(它是客户端最终用户的内部Web应用程序)。我们希望使用Spring Data Jpa。

问题:使用JdbcTemplate是否有一些客观原因,因为应用程序的速度很高?从我的角度来看,会有不同的瓶颈。

1 个答案:

答案 0 :(得分:6)

问题是,没有指定确切的用例就不可能回答更快的问题。

JdbcTemplate可能在谈论纯查询执行时会更快,因为JPA实现会做更多的事情:

  • 解析JPQL(假设您正在使用它)
  • 从中创建SQL查询
  • 执行它
  • 将结果转换为对象

虽然模板(几乎)只是:

  • 执行查询
  • 将结果作为对ResultSetMapper或类似电话的调用。

当然,JPA这样做是有原因的。

  • 它提供了相当数量的数据库独立性。
  • 它会跟踪您的更改并生成正确的更新语句以保留它们。
  • 它允许延迟加载,因此您不必事先考虑要加载什么(当然,如果您关心性能,则仍然必须这样做)。

而这些东西的成本超出了性能。

JPA提供的抽象实际上是非常复杂和泄漏的,大多数使用它的开发人员都无法正确理解。尽管我认为在许多情况下使用JPA是完全合理的,但我也可以与禁止将其用于项目的人们联系起来。为了对此做出明智的决定,谈论性能绝对太有限了。