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

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

作者:chszs,转载需注明。博客主页:http://blog.csdn.net/chszs

我发现网上几乎没有讲述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,下面让我们开始吧。

作者:chszs,转载需注明。博客主页:http://blog.csdn.net/chszs

一、什么是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减少了我们编写样板代码的时间。

项目持久层的结构如图所示:

作者:chszs,转载需注明。博客主页:http://blog.csdn.net/chszs

二、Spring Data Repositories介绍

Spring Data JPA依赖于Spring Data Commons——它是一个数据库抽象层,提供了共享的数据库基础构件。

我们使用Spring Data JPA时无需关注任何数据库抽象层的实现,但必须熟悉Spring Data数据库接口。这些接口的描述如下:

1、Spring Data Commons提供了如下接口

1)Repository<T, ID extends Serializable>接口

它是一个标记接口,有两个目标:

一是捕获托管实体的类型和实体ID的类型

二是在类路径扫描期间,帮助Spring容器找到具体的数据仓库接口。

2)CrudRepository<T, ID extends Serializable>接口

提供了对托管实体的CRUD操作。

3)PagingAndSortingRepository<T, ID extends Serializable>接口

提供了对从数据库取回的实体的分页和排序操作方法。

4)QueryDslPredicateExecutor<T>接口

此接口不是数据仓库接口。它声明了通过查询DSL谓词对象检索数据库的方法。

2、Spring Data JPA提供了如下接口

1)JpaRepository<T, ID extends Serializable>接口

它是一个JPA特定的数据仓库接口,是Commons数据仓库接口背后的单一接口声明的方法组合。

2)JpaSpecificationExecutor<T>接口

此接口不是数据仓库接口。它声明了通过使用JPA标准API的Specification<T>对象从数据库取回实体的方法。

数据仓库的分层看起来如图所示:

时间: 2024-10-09 13:36:26

Spring Data JPA开发手册——1.介绍的相关文章

spring data jpa基本介绍

jpa是将java对象持久化到关系型数据库的标准方式,spring data jpa作为spring data项目在关系型数据库数据访问层的解决方案,为简化jpa存储提供了良好的支持. 有关jpa的文章网上实在是太多太多,以下几篇写的比较不错,几乎涵盖了书中所有要讲的东西,也不copy来copy去的了,免得真正需要的人又搜出一大堆废话. jpa学习笔记:http://www.blogjava.net/luyongfa/archive/2012/11/01/390572.html spring d

《Spring Data JPA从入门到精通》内容简介、前言

内容简介 本书以Spring Boot为技术基础,从入门到精通,由浅入深地介绍Spring Data JPA的使用.有语法,有实践,有原理剖析. 本书分为12章,内容包括整体认识JPA.JPA基础查询方法.定义查询方法.注解式查询方法.@Entity实例里面常用注解详解.JpaRepository扩展详解.JPA的MVC扩展REST支持.DataSource的配置.乐观锁.SpEL表达式在Spring Data里面的应用.Spring Data Redis实现cacheable的实践.Intel

spring data jpa 的使用

使用spring data jpa 开发时,发现国内对spring boot jpa全面介绍的文章比较少案例也比较零碎,因此写文章总结一下. spring data jpa介绍 首先了解JPA是什么? JPA(Java Persistence API)是Sun官方提出的Java持久化规范.它为Java开发人员提供了一种对象/关联映射工具来管理Java应用中的关系数据.他的出现主要是为了简化现有的持久化开发工作和整合ORM技术,结束现在Hibernate,TopLink,JDO等ORM框架各自为营

spring data jpa的使用

在上篇文章springboot(二):web综合开发中简单介绍了一下spring data jpa的基础性使用,这篇文章将更加全面的介绍spring data jpa 常见用法以及注意事项 使用spring data jpa 开发时,发现国内对spring boot jpa全面介绍的文章比较少案例也比较零碎,因此写文章总结一下.本人也正在翻译Spring Data JPA 参考指南,有兴趣的同学欢迎联系我,一起加入翻译中! spring data jpa介绍 首先了解JPA是什么? JPA(Ja

Spring Boot2 系列教程 (七) | 使用 Spring Data JPA 访问 Mysql

前言 如题,今天介绍 Spring Data JPA 的使用. 什么是 Spring Data JPA 在介绍 Spring Data JPA 之前,首先介绍 Hibernate . Hibernate 使用 O/R 映射 (Object-Relation Mapping) 技术实现数据访问, O/R 映射即将领域模型类与数据库的表进行映射,通过程序操作对象而实现表数据操作的能力,让数据访问操作无需关注数据库相关技术. Hibernate 主导了 EJB 3.0 的 JPA 规范, JPA 即

Spring Boot 2.x基础教程:使用Spring Data JPA访问MySQL

在数据访问这章的第一篇文章<Spring中使用JdbcTemplate访问数据库> 中,我们已经介绍了如何使用Spring Boot中最基本的jdbc模块来实现关系型数据库的数据读写操作.那么结合Web开发一章的内容,我们就可以利用JDBC模块与Web模块的功能,综合着使用来完成一个适用于很多简单应用场景的后端应用了. 然而当我们有一定的开发经验之后,不难发现,在实际开发过程中,对数据库的操作大多可以归结为:"增删改查".就最为普遍的单表操作而言,除了表和字段不同外,语句几

spring data jpa学习笔记一:helloworld

在学习 JPA Spring Data之前,我们有必要了解一下JPA和Spring Data. JPA JPA全称Java Persistence API.即java持久化规范.JPA通过注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中. Spring Data Spring Data是Spring框架的一个子项目,就像Spring MVC是Spring的一部分一样.使得数据库访问变得方便和快捷.Spring Data 支持JPA. JPA Spring Data J

使用 Spring Data JPA 简化 JPA 开发

从一个简单的 JPA 示例开始 本文主要讲述 Spring Data JPA,但是为了不至于给 JPA 和 Spring 的初学者造成较大的学习曲线,我们首先从 JPA 开始,简单介绍一个 JPA 示例:接着重构该示例,并引入 Spring 框架,这两部分不会涉及过多的篇幅,如果希望能够深入学习 Spring 和 JPA,可以根据本文最后提供的参考资料进一步学习. 自 JPA 伴随 Java EE 5 发布以来,受到了各大厂商及开源社区的追捧,各种商用的和开源的 JPA 框架如雨后春笋般出现,为

[z]使用 Spring Data JPA 简化 JPA 开发

文章来自http://www.ibm.com/developerworks/cn/opensource/os-cn-spring-jpa/,内容非常清晰. 从一个简单的 JPA 示例开始 本文主要讲述 Spring Data JPA,但是为了不至于给 JPA 和 Spring 的初学者造成较大的学习曲线,我们首先从 JPA 开始,简单介绍一个 JPA 示例:接着重构该示例,并引入 Spring 框架,这两部分不会涉及过多的篇幅,如果希望能够深入学习 Spring 和 JPA,可以根据本文最后提供