请选择 进入手机版 | 继续访问电脑版
本站特色:极好的技术研究氛围!所有技术交流,必有回复!

疯狂Java联盟

 找回密码
 加入联盟
查看: 563|回复: 0

Spring Boot2.0连载(44)-- Spring Data JPA开发

[复制链接]
发表于 2018-6-2 22:07:27 | 显示全部楼层 |阅读模式
更多Spring Boot2.0的知识敬请期待疯狂软件著作《Spring Boot企业应用实战》上市



Spring Data JPA是Spring Data技术下的子项目,使用Spring Data JPA访问数据只需要数据访问层接口实现JpaRepository接口即可,Spring Data JPA项目的数据访问层接口可以在不写实现的情况下实现大部分的数据访问操作,使用起来十分的方便、强大。由于JpaRepository接口继承了PagingAndSortingRepository接口,所以JpaRepository接口也拥有了PagingAndSortingRepository接口的相关功能操作,JpaRepository接口封装了常用的一些方法,使用方式都类似,同时按照Spring Data定义的规则,我们也可以在数据访问层接口中自定义一些查询方法来完成数据的访问操作。

JpaRepository

JpaRepository继承自PagingAndSortingRepository接口,因此将获得更多的操作功能,JpaRepository是基于JPA的Repository接口,它极大地减少了JPA作为数据访问的代码,JpaRepository是实现Spring Data JPA技术访问数据库的关键接口。JpaRepository接口的源码如下:

程序清单:org/springframework/data/jpa/repository/JpaRepository.java
  1. package org.springframework.data.jpa.repository;
  2. import java.io.Serializable;
  3. import java.util.List;
  4. import javax.persistence.EntityManager;
  5. import org.springframework.data.domain.Example;
  6. import org.springframework.data.domain.Sort;
  7. import org.springframework.data.repository.NoRepositoryBean;
  8. import org.springframework.data.repository.PagingAndSortingRepository;
  9. import org.springframework.data.repository.query.QueryByExampleExecutor;

  10. @NoRepositoryBean
  11. public interface JpaRepository<T, ID extends Serializable>
  12.         extends PagingAndSortingRepository<T, ID>, QueryByExampleExecutor<T> {
  13.     List<T> findAll();
  14.     List<T> findAll(Sort sort);
  15.     List<T> findAll(Iterable<ID> ids);
  16.     <S extends T> List<S> save(Iterable<S> entities);
  17.     void flush();
  18.     <S extends T> S saveAndFlush(S entity);
  19.     void deleteInBatch(Iterable<T> entities);
  20.     void deleteAllInBatch();
  21.     T getOne(ID id);
  22.     <S extends T> List<S> findAll(Example<S> example);
  23.     <S extends T> List<S> findAll(Example<S> example, Sort sort);
  24. }
复制代码


该接口提供的常用方法:
  • List<T> findAll():查询出所有的实体对象数据,返回的是一个List集合。
  • List<T> findAll(Sort sort):按照指定的排序对象规则查询实体对象数据,返回的是一个List集合。
  • List<T> findAll(Iterable<ID> ids):根据所提供的实体对象id,将对应的实体全部查询出来,返回的是一个List集合。
  • <S extends T> List<S> save(Iterable<S> entities):将提供的集合中的实体对象数据保存到数据库。
  • void flush():将缓存的对象数据操作更新到数据库中去。
  • <S extends T> S saveAndFlush(S entity):保存对象的同时立即更新到数据库。
  • void deleteInBatch(Iterable<T> entities):批量删除提供的实体对象。
  • void deleteAllInBatch():批量删除所有的实体对象数据。
  • T getOne(ID id):根据id查询出对应的实体对象。
  • <S extends T> List<S> findAll(Example<S> example):根据提供的example实例查询实体对象数据。
  • <S extends T> List<S> findAll(Example<S> example, Sort sort):根据提供的example实例查询实体对象数据,同时支持排序查询。


您需要登录后才可以回帖 登录 | 加入联盟

本版积分规则

视频、代码、电子书下载
请关注"疯狂图书"公众号
QQ交流1群: 545923995  未满
微信群请扫二维码
QQ交流1群:
545923995
(未满)

小黑屋|手机版|Archiver|疯狂Java联盟 ( 粤ICP备11094030号 )

GMT+8, 2019-5-20 23:13 , Processed in 0.218013 second(s), 7 queries , File On.

快速回复 返回顶部 返回列表