Spring Data JPA开发手册——1.介绍

简介: 《Spring Data JPA开发手册——1.介绍》 我发现网上几乎没有讲述Spring Data JPA原理的文章,很多Guide一上来就是如何配置,接着就是几大段代码,没有一篇文章能把Spring Data JPA原理及构成说清楚的。

《Spring Data JPA开发手册——1.介绍》

我发现网上几乎没有讲述Spring Data JPA原理的文章,很多Guide一上来就是如何配置,接着就是几大段代码,没有一篇文章能把Spring Data JPA原理及构成说清楚的。所以,我写了这个系列的文章。
用Java Persistence API库创建持久层是很繁琐的,也很耗时,而且需要大量的样板代码。我们可以通过以下步骤消除一些样板代码:
1)创建一个抽象的基类,它提供了对实体的CRUD操作。
2)创建继承此基类的具体操作类。
这种方法的问题是,我们仍然要编写创建数据库查询和调用它们的代码。更糟糕的是,当我们要创建新的数据库查询时,我们还是要这么做一次。这太浪费时间了。
如果我告诉你,我们可以在创建JPA持久层时无需编写任何样板代码,你信不?
Spring Data JPA可以帮助我们做到这一点。Spring Data JPA官网声称:
实现应用程序的数据访问层一直是很繁琐的,总是要写很多的样板代码来执行简单的查询,比如分页、审计。Spring Data JPA旨在改进数据访问层的实现,减少开发时间。开发者在编写数据库接口时,包括自定义的查询方法,Spring Data JPA会自动提供其实现。
本文介绍了Spring Data JPA,下面让我们开始吧。
一、什么是Spring Data JPA
Spring Data JPA不是一个JPA实现,它是一个框架或库,提供了JPA Provider之上的一个额外的抽象层。如果我们决定使用Spring Data JPA,那么应用程序的后端部分至少会包含三层:
1)Spring Data JPA
Spring Data JPA提供了JPA Provider的抽象层。
2)Spring Data Commons
Spring Data Commons提供了共享的基础构件。
3)JPA Provider
Java Persistence API的实现。
看起来Spring Data JPA使我们的应用程序变得更复杂,从某些方面来说确实如此。但是要明白,Spring Data JPA减少了我们编写样板代码的时间。
项目持久层的结构如图所示:


二、Spring Data Repositories介绍
Spring Data JPA依赖于Spring Data Commons——它是一个数据库抽象层,提供了共享的数据库基础构件。
我们使用Spring Data JPA时无需关注任何数据库抽象层的实现,但必须熟悉Spring Data数据库接口。这些接口的描述如下:
1、Spring Data Commons提供了如下接口
1)Repository接口
它是一个标记接口,有两个目标:
一是捕获托管实体的类型和实体ID的类型
二是在类路径扫描期间,帮助Spring容器找到具体的数据仓库接口。
2)CrudRepository接口
提供了对托管实体的CRUD操作。
3)PagingAndSortingRepository接口
提供了对从数据库取回的实体的分页和排序操作方法。
4)QueryDslPredicateExecutor接口
此接口不是数据仓库接口。它声明了通过查询DSL谓词对象检索数据库的方法。
2、Spring Data JPA提供了如下接口
1)JpaRepository接口
它是一个JPA特定的数据仓库接口,是Commons数据仓库接口背后的单一接口声明的方法组合。
2)JpaSpecificationExecutor接口
此接口不是数据仓库接口。它声明了通过使用JPA标准API的Specification对象从数据库取回实体的方法。
数据仓库的分层看起来如图所示:

目录
相关文章
|
1月前
|
存储 Java API
如何使用 Java 记录简化 Spring Data 中的数据实体
如何使用 Java 记录简化 Spring Data 中的数据实体
34 9
|
1月前
|
SQL Java 关系型数据库
Springboot引入jpa来管理数据库
Springboot引入jpa来管理数据库
32 0
Springboot引入jpa来管理数据库
|
1月前
|
SQL Java 数据库连接
springBoot+Jpa(hibernate)数据库基本操作
springBoot+Jpa(hibernate)数据库基本操作
34 0
|
2月前
|
Java 数据库连接 API
【Java笔记+踩坑】Spring Data JPA
从常用注解、实体类和各层编写方法入手,详细介绍JPA框架在增删改查等方面的基本用法,以及填充用户名日期、分页查询等高级用法。
【Java笔记+踩坑】Spring Data JPA
|
3月前
|
Java Spring 数据库
怎样动动手指就能实现数据操作?Spring Data JPA背后的魔法揭秘
【8月更文挑战第31天】在Java开发中,数据库交互至关重要。传统的JDBC操作繁琐且难维护,而Spring Data JPA作为集成JPA的数据访问层解决方案,提供了CRUD等通用操作接口,显著减少代码量。通过继承`JpaRepository`,开发者能轻松实现数据的增删改查,甚至复杂查询和分页也不再困难。本文将通过示例详细介绍如何利用Spring Data JPA简化数据访问层的开发,提升代码质量和可维护性。
41 0
|
3月前
|
存储 Java 数据库
|
3月前
|
存储 Java API
|
缓存 Java Go
解决Spring Data JPA查询存在缓存问题及解决方案
解决Spring Data JPA查询存在缓存问题及解决方案
658 0
|
6月前
|
XML Java 数据库连接
Spring Boot的数据访问之Spring Data JPA以及Hibernate的实战(超详细 附源码)
Spring Boot的数据访问之Spring Data JPA以及Hibernate的实战(超详细 附源码)
110 0
|
3月前
|
Java 数据库连接 数据库
Spring Data JPA 与 Hibernate 之区别
【8月更文挑战第21天】
83 0