本篇文章给大家带来的内容是关于spring data jpa的应用场景介绍(详细) ,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
先说简单一下JPA
概念:JPA(Java Persistence API)是Sun官方提出的Java持久化规范。它为Java开发人员提供了一种对象/关联映射工具来管理Java应用中的关系数据。
影响:他的出现主要是为了简化现有的持久化开发工作和整合ORM技术,结束现在Hibernate,TopLink,JDO等ORM框架各自为营的局面
进入正题
Spring DATA JPA
1、概念:它是基于ORM框架、JPA规范封装的一套JPA应用框架可使开发者用极简的代码即可实现对数据的访问和操作,它提供了 包括增删改查等在内的常用功能,且易于扩展!学习并使用Spring Data JPA可以极大提高开发效率。
2、好处:spring data jpa让我们解脱了DAO层的操作,基本上所有CRUD都可以依赖于它来实现
3、实现:
maven引入:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId></dependency>
gradle引入:
compile('org.springframework.boot:spring-boot-starter-data-jpa')
实现:创建一个接口实现下面的任何一个接口都可以
3.1:Repository
概述:仅仅是一个标识,表明任何继承它的均为仓库接口类,方便Spring自动扫描识别 。这个接口是最基础的接口,只是一个标志性的接口,没有定义任何的方法。
它是最顶层的接口,是一个空接口,目的是为了统一所有的Repository的类型,且能让组件扫描的时候自动识别。
好处:例如,我们有一部分方法是不想对外提供的,比如我们只想提供增加和修改方法,不提供删除方法,那么下面介绍的几个接口都是做不到的,这个时候,我们就可以继承这个接口,然后将CrudRepository接口里面相应的方法拷贝到Repository接口就可以了。
3.2:CrudRepository
概述:Repository的子接口,提供CRUD相关的方法
主要方法:
保存 <S extends T> S save(S entity);批量保存 <S extends T> Iterable<S> save(Iterable<S> entities);根据id查询一个对象 T findOne(ID id)判断对象是否存在 boolean exists(ID id)查询所有的对象 Iterable<T> findAll()根据id列表查询所有的对象 Iterable<T> findAll(Iterable<ID> ids)计算对象的总个数 long count()根据id删除 void delete(ID id)删除对象 void delete(T entity);批量删除 void delete(Iterable<? extends T> entities);删除所有 void deleteAll()
3.3:PagingAndSortingRepository
概述:CrudRepository的子接口,添加一组分页排序相关的方法
主要方法:
不带分页的排序 Iterable<T> findAll(Sort sort)带分页的排序 Page<T> findAll(Pageable pageable)
3.4:JpaRepository
概述:PagingAndSortingRepository的子接口,增加一组JPA规范相关的方法
主要方法:
查询所有对象,不排序 List<T> findAll()查询所有对象,并排序 List<T> findAll(Sort sort)批量保存 <S extends T> List<S> save(Iterable<S> entities);强制缓存与数据库同步 void flush()保存并强制同步 T saveAndFlush(T entity)批量删除 void deleteInBatch(Iterable<T> entities)删除所有 void dele<a>本文来源gao*daima.com搞@代#码&网6</a>teAllInBatch();