Spring Data JPA实现数据的增删改查操作

您所在的位置:网站首页 jpa连接数据库创建不了 Spring Data JPA实现数据的增删改查操作

Spring Data JPA实现数据的增删改查操作

2024-07-10 17:45| 来源: 网络整理| 查看: 265

1、JPA(Java持久层API) 1.1 认识Spring Data

Spring Data 是Spring的一个子项目,旨在统一和简化各类型数据的持久化存储方式,而不拘泥于是关系型数据库还是NoSQL数据库。无论是哪种持久化存储方式,数据访问对象(Data Access Objects,DAO)都会提供对对象的增加、删除、修改和查询的方法,以及排序和分页方法等。 Spring Data 提供了基于这些层面的统一接口(如:CrudRepository、 PagingAndSortingRepository),以实现持久化的存储。

1.2 认识JPA

JPA(Java Persistence API)是Java的持久化API,用于对象的持久化。它是一个非常强大的ORM持久化的解决方案,免去了使用JDBCTemplate开发的编写脚本工作。JPA通过简单约定好接口方法的规则自动生成相应的JPQL语句,然后映射成POJO对象。

JPA是一个规范化接口,封装了Hibernate的操作作为默认实现,让用户不通过任何配置即可完成数据库的操作。

 

2、认识JPA的接口

JPA提供了操作数据库的接口。在开发过程中继承和使用这些接口,可简化现有的持久化开发工作。可以使Spring找到自定义接口,并生成代理类,后续可以把自定义接口注入Spring容器中进行管理。在自定义接口过程中,可以不写相关的SQL操作,由代理类自动生成。

2.1 JPA接口JpaRepository

JpaRepository接口继承自PagingAndSortingRepository接口。该接口提供了JPA的相关实用功能,以及通过Example进行查询的功能。Example对象是JPA提供用来构造查询条件的对象。该接口的关键代码如下:

public interface JpaRepository extends PagingAndSortingRepository, QueryByExampleExecutor { }

在上述代码中,T 表示实体对象,ID 表示主键。ID必须实现序列号。

JpaRepository接口的源代码如下:

@NoRepositoryBean public interface JpaRepository extends PagingAndSortingRepository, QueryByExampleExecutor { List findAll(); List findAll(Sort var1); List findAllById(Iterable var1); List saveAll(Iterable var1); void flush(); S saveAndFlush(S var1); void deleteInBatch(Iterable var1); void deleteAllInBatch(); T getOne(ID var1); List findAll(Example var1); List findAll(Example var1, Sort var2); }

JpaRepository接口提供的方法与说明:

方法描述List findAll();查找所有实体。List findAll(Sort var1);排序、查找所有实体。List findAllById(Iterable var1);返回制定一组ID的实体。 List saveAll(Iterable var1);保存集合。void flush();执行缓存与数据库同步。 S saveAndFlush(S var1);强制执行持久化。void deleteInBatch(Iterable var1);删除一个实体集合。void deleteAllInBatch();删除所有实体。T getOne(ID var1);返回ID对应的实体。如果不存在,则返回空值。 List findAll(Example var1);查询满足Example的所有对象。 List findAll(Example var1, Sort var2);

查询满足Example的所有对象,并且进行排序返回。

2.2 数据操作接口CrudRepository

CrudRepository接口继承自Repository接口,并新增了增加、删除、修改和查询方法。

CrudRepository接口的源代码如下:

@NoRepositoryBean public interface CrudRepository extends Repository { S save(S var1); Iterable saveAll(Iterable var1); Optional findById(ID var1); boolean existsById(ID var1); Iterable findAll(); Iterable findAllById(Iterable var1); long count(); void deleteById(ID var1); void delete(T var1); void deleteAll(Iterable


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3