微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java – spring-jdbc vs spring-data-jdbc以及它们支持的内容

我很好奇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 Spec 4.1)

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

解决方法:

弹簧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 DataSources很好地融入了Spring的事务管理功能,比如@Transactional注释.
此外,JdbcTemplate是此模块的一部分,它允许您执行sql语句并从Resultsets中提取对象,而无需处理异常处理或正确关闭语句,连接等的令人讨厌的细节.

弹簧数据-JDBC

另一方面,spring-data-jdbc通过spring-jdbc提供Spring Data抽象.也就是说,您可以创建一个Spring Data CrudRepository和一个简单的“实体”(不是JPA实体!),并且像Spring Data一样,它将为您创建查询,而无需通过JDBC编写本机CRUD查询,as in this example on the spring-data-examples git repo.

使用引用的示例作为演示:

interface CategoryRepository extends CrudRepository<Category, Long> {}

上面的代码是你可能需要的(使用类别对象名称的内省作为表名的源(基于NamingStrategy),它的属性作为列,再次类似于JPA,但不使用JPA.

而不是像这样写自己的:

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

  // The rest of my other CRUD operations
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐