• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

spring data jpa的应用场景介绍(详细)

java 搞代码 4年前 (2022-01-09) 31次浏览 已收录 0个评论

本篇文章给大家带来的内容是关于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();

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:spring data jpa的应用场景介绍(详细)

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址