Spring Data、Spring Data JPA和JdbcTemplate的区别

8
我曾相信Spring DataSpring Data JPA是同一概念,但后来在看一个关于Spring Data的Youtube教程时,发现他在使用JdbcTemplate。所以我开始感到困惑。

我想澄清一下Spring DataJdbcTemplate之间的区别。 JdbcTemplateSpring Data JPASpring Data的一部分吗?

3个回答

11

那么与JdbcTemplateSpring Data没有任何相关性吗? - Noor Rehman
这取决于你的看法。我怀疑在使用Spring Data JDBC(家族的新成员)时,内部将使用JdbcTemplate。然而,JdbcTemplate与Spring Data无关,Spring Data(根据子项目)可能与JdbcTemplate有关。 - M. Deinum

6
如果您不想通过域模型访问数据库架构,可以使用Spring的JdbcTemplate。而使用JPA时,则需要确保数据库架构正确映射到域模型上。
在Spring的JdbcTemplate和JPA上,性能几乎相似。
JPA是Java持久化API,是Java标准API之一,用于对象关系映射。
Spring框架由多个项目组成,其中一个项目是Spring Data。
Spring Data旨在使从传统关系数据库到NoSQL数据库等不同类型数据库的操作更加容易。Spring Data通过Spring Data JPA子项目支持JPA。

JdbcTemplateSpring Data JPASpring Data 项目的子框架或者库吗? - Noor Rehman
1
JdbcTemplateSpring Framework 的一部分。Spring Data 是一个由多个子项目组成的项目,其中 Spring Data JPA 是其中之一的子项目。 - M. Deinum
@M.Deinum,你能否提到Spring Data的2-3个其他子项目? - Noor Rehman
2
请查看我的回答中的链接,它列出了所有这些内容。 - M. Deinum

2

这是我一位有经验的同事的建议:

为了确定使用哪种技术,他更喜欢以下顺序:

  1. 对于简单的解决方案,请使用标准的JPA方法 - 通过映射,您可以无缝地进行连接,加速开发过程并且错误处理很直接。
  2. 如果要消除JPA开销,请使用JPA本机查询。
  3. 对于复杂的联接查询和自定义对象映射,请使用JPA结果集映射.....
  4. 如果性能是唯一目标,请使用JDBC模板 - 开发过程的开销:由于您必须编写自己的代码和错误处理机制,因此开发过程较慢。

更新:

  1. 如果公司切换到使用略有不同的SQL语法的不同数据库,则使用JDBC模板将增加大量调整SQL以适应新数据库的工作,因为它仅适用于先前的数据库。

    但是,如果用户使用JPA,则在切换数据库时不必触及查询。节省了大量工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接