SpringBoot 学习(四)---- SpringBoot 的数据访问 之 Spring Data JPA核心数据访问接口

Spring Data 核心数据访问接口

Spring Data JPA可以极大地简化JPA的写法,在几乎不用写接口实现的情况下wan'完成对数据的访问和操作,由于Spring Data JPA是Spring Data下的yi'g一个模块,所以需要先掌握 Spring Data 项目的相关技术。Spring Data项目提供了访问操作数据的统一规范,该规范约定了对关系型和非关系型数据库操作的统一标准,主要包含了CRUD(增加、查询、修改、删除)操作、相关参数查询、分页操作、排序操作等。

Spring Data 通过提供 Repository 接口来约定数据访问的统一标准,Respository 接口的源码如下:

                                             程序清单:org/springframework/data/repository.java

public interface Repository{

}

从源码中可以看出,Repository接口接收当前所操作的实体类型参数,以及ID类型参数。Respository接口下包含了一些常用的子接口:

  • CrudRepository
  • PagingAndSortingRepository
  • JpaRepository

在进行 Spring Boot 项目的开发中,开发者只需定义自己xia项目的数据访问接口,然后实现 Spring Data 提供的这些接口,就可以实现对数据的CRUD操作了,这也正是 Spring Data 可以简化数据访问的guan关键所在。接下来详细介绍这些接口。

CrudRepository

CrudRepository 提供了最基本的对实体类的增删改查操作。CrudRepository 接口的源码如下:

package org.springframework.data.repository;
import java.io.Serializable;

@NoRepositoryBean
public interface CrudRepository extends Repository{
     S save(S entity);
     Iterable save(Iterable entities);
    T findOne(ID id);
    boolean exists(ID id);
    Iterable findAll();
    Iterable findAll(Iterable ids);
    long count;
    void delete(ID id);
    void delete(T entity);
    void delete(Iterable entities);
    void deleteAll();
}

该接口提供了hen很多常用的方法:

  • S save(S entity):保存单个实体对象数据。
  • Iterable save(Iterable entities):保存给定的所有实体对象。
  • T findOne(ID id):根据id查询实体。
  • boolean exists(ID id):根据id判断实体是否存在。
  • Iterable findAll():查询所有实体。
  • Iterable findAll(Iterable ids):根据所有提供的这些id,将对应的实体全部查询出来。
  • long count:统计实体总数量。
  • void delete(ID id):根据id删除实体。
  • void delete(T entity):删除一个实体。
  • void delete(Iterable entities):删除一个实体的集合。
  • void deleteAll():删除所有实体。

PagingAndSortingRepository

PagingAndSortingRepository 继承自CrudRepository 接口,所以除了拥有CrudRepository的功能之外,它还增加了排序和分页查询的功能。

Iterable findAll(Sort sort); //排序 
Page findAll(Pageable pageable); //分页查询(含排序功能) 

 

你可能感兴趣的:(SpringBoot 学习(四)---- SpringBoot 的数据访问 之 Spring Data JPA核心数据访问接口)