gpt4 book ai didi

java - spring-jdbc 与 spring-data-jdbc 以及它们支持什么

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:21:57 29 4
gpt4 key购买 nike

我很好奇 spring-jdbc(我在最新的 spring 版本中缺少的)和 spring-data-jdbc 之间有什么区别。
有区别还是只是重命名(在存储库中我看不到这个)?

是否有某处描述了版本支持的目标(DB/JDBC 规范/JDK)是什么?

例如对于来自 oracle 的普通 JDBC,我可以在这里看到该信息: http://www.oracle.com/technetwork/database/enterprise-edition/jdbc-faq-090281.html#01_03_1
(例如:Oracle DB 12.1/12cR1 上的 Java7/Java8 上的 ojdbc7.jar 中的 JDBC 规范 4.1)

但我想念 spring-jdbc - 我在哪里可以找到该信息?

最佳答案

spring-jdbc

spring-jdbc 的文档基本上在这里:

https://docs.spring.io/spring/docs/current/spring-framework-reference/data-access.html

虽然它没有具体指向 Spring 项目 spring-jdbc。这个项目只是提供了所有可以与 Spring Framework 一起使用的普通 JDBC DataSource 的 Spring 抽象。例如,Spring's DataSources它很好地连接到 Spring 的事务管理功能,例如 @Transactional 注释。此外,JdbcTemplate 是该模块的一部分,它允许您执行 SQL 语句并从 ResultSet 中提取对象,而无需处理异常处理或正确关闭语句的讨厌细节、连接等。

spring-data-jdbc

另一方面,

spring-data-jdbc 提供了 spring-jdbc 之上的 Spring Data 抽象。也就是说,您可以创建一个 Spring Data CrudRepository 和一个简单的“实体”(不是 JPA 实体!),就像 Spring Data 所做的那样,它会为您创建查询,而无需您编写 native 代码通过 JDBC 进行 CRUD 查询,as in this example on the spring-data-examples git repo .

以引用的例子作为演示:

interface CategoryRepository extends CrudRepository<Category, Long> {}

上面的代码是您可能需要的全部(使用对 Category 对象名称的内省(introspection)作为表名称的来源(基于 NamingStrategy),它的属性如下列,同样类似于 JPA,但不使用 JPA

而不是像这样写你自己的:

@Repository
public class CategoryRepository {
public void create(Category category) {
jdbcTemplate.execute("insert...");
}

// The rest of my other CRUD operations
}

关于java - spring-jdbc 与 spring-data-jdbc 以及它们支持什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51923060/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com