我很好奇 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 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 https://docs.spring.io/spring/docs/current/spring-framework-reference/data-access.html
虽然它没有具体指向您 Spring 项目spring-jdbc
。该项目仅通过普通 JDBC 提供所有 Spring 抽象DataSource
您可以将其与 Spring 框架一起使用。例如,春天的DataSources https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/jdbc/datasource/AbstractDataSource.html它很好地与 Spring 的事务管理功能挂钩,例如@Transactional
注解。
另外,JdbcTemplate
是该模块的一部分,它允许您执行 SQL 语句并从中提取对象ResultSet
无需处理异常处理或正确关闭语句、连接等令人讨厌的细节。
spring-data-jdbc
spring-data-jdbc
另一方面,提供了 Spring Data 抽象spring-jdbc
。也就是说,你可以创建一个Spring DataCrudRepository
和一个简单的“实体”(不是 JPA 实体!),就像 Spring Data 所做的那样,它将为您创建查询,而无需您通过 JDBC 编写本机 CRUD 查询,正如这个例子中的spring-data-examplesgit 仓库 https://github.com/spring-projects/spring-data-examples/tree/master/jdbc/basics.
使用引用的示例作为演示:
interface CategoryRepository extends CrudRepository<Category, Long> {}
上面的代码就是您可能需要的全部(使用内省Category
对象名称作为表名称的源(基于NamingStrategy
)并且它的属性同样是列与JPA类似,但不使用JPA.
而不是像这样编写自己的:
@Repository
public class CategoryRepository {
public void create(Category category) {
jdbcTemplate.execute("insert...");
}
// The rest of my other CRUD operations
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)