Spring Data JPA 是 Spring 基于 ORM 框架、JPA 规范的基础上封装的一套JPA应用框架,可使开发者用极简的代码即可实现对数据库的访问和操作。它提供了包括增删改查等在内的常用功能,且易于扩展!学习并使用 Spring Data JPA 可以极大提高开发效率!

Spring Data JPA 让我们解脱了DAO层的操作,基本上所有CRUD都可以依赖于它来实现,在实际的工作工程中,推荐使用Spring Data JPA + ORM(如:hibernate)完成操作,这样在切换不同的ORM框架时提供了极大的方便,同时也使数据库层操作更加简单,方便解耦

JPA是一套规范,内部是有接口和抽象类组成的。hibernate是一套成熟的ORM框架,而且Hibernate实现了JPA规范,所以也可以称hibernate为JPA的一种实现方式,我们使用JPA的API编程,意味着站在更高的角度上看待问题(面向接口编程)

Spring Data JPA是Spring提供的一套对JPA操作更加高级的封装,是在JPA规范下的专门用来进行数据持久化的解决方案。

Spring Data JPA是spring提供的一款对于数据访问层(Dao层)的框架,使用Spring Data JPA,只需要按照框架的规范提供dao接口,不需要实现类就可以完成数据库的增删改查、分页查询等方法的定义,极大的简化了我们的开发过程。

在Spring Data JPA中,对于定义符合规范的Dao层接口,我们只需要遵循以下几点就可以了:

1.创建一个Dao层接口,并extends JpaRepository和JpaSpecificationExecutor

  2.提供相应的泛型

/**

* JpaRepository<实体类类型,主键类型>:用来完成基本CRUD操作

* JpaSpecificationExecutor<实体类类型>:用于复杂查询(分页等查询操作)

*/

public interface CustomerDao extends JpaRepository<Customer, Long>, JpaSpecificationExecutor<Customer> {

}

SpringDataJPA入门相关推荐

  1. springDataJpa入门教程(5)-单表动态条件查询+分页

    springDataJpa入门教程 springDataJpa入门教程(1)-基于springBoot的基本增删改查 springDataJpa入门教程(2)-Specification动态条件查询+ ...

  2. SpringDataJPA入门就这么简单

    一.SpringData入门 在上次学SpringBoot的时候,那时候的教程就已经涉及到了一点SpringData JPA的知识了.当时还是第一次见,觉得也没什么大不了,就是封装了Hibernate ...

  3. Spring-Data-JPA入门--增删改查1

    上一篇已经简单介绍了一下Spring-Data-JPA,也可以去查看官网 (1)jpa的dao只有接口没有实现类了.所以就不能用原先的扫描方式了.所以就不能用那4个注解了@Controller,@Se ...

  4. HttpClient实战爬虫B站番剧

    准备 我们打开一个b站首页,选择番剧索引. https://www.bilibili.com/anime/index/#season_version=-1&area=-1&is_fin ...

  5. SpringSecurity安全控件使用指南

    写在前面: 从2018年底开始学习SpringBoot,也用SpringBoot写过一些项目.现在想对学习Springboot的一些知识总结记录一下.如果你也在学习SpringBoot,可以关注我,一 ...

  6. Spring Security 实现动态权限菜单方案(附源码)

    点击关注公众号,实用技术文章及时了解 系统权限管理 1.前言 在实际开发中,开发任何一套系统,基本都少不了权限管理这一块.这些足以说明权限管理的重要性.其实SpringSecurity去年就学了,一直 ...

  7. boot spring test 文档_SpringBoot入门建站全系列(五)使用Spring-data-jpa操作数据库

    SpringBoot入门建站全系列(五)使用Spring-data-jpa操作数据库 SpringBoot操作数据库有多种方式,如 JDBC直接操作:太古老了,没人愿意这样玩 Mybatis插件:比较 ...

  8. SpringDataJpa系列一之初识及入门案例搭建

    本文章参考文档为<SpringDataJpa从入门到精通> 首先, 我觉得入门SpringDataJpa的话, 我们首先要理清楚. JPA.Hibernate和SpringDataJpa的 ...

  9. SpringBoot入门建站全系列(六)Spring-data-jpa进阶使用

    SpringBoot入门建站全系列(六)Spring-data-jpa进阶使用 上一篇介绍了Mybatis的配置和基本用法<SpringBoot入门建站全系列(五)使用Spring-data-j ...

最新文章

  1. 命令行程序增加 GUI 外壳
  2. mysql insertOrUpdate 方法
  3. 'module' object is not callable
  4. Kubernetes理论基础
  5. 10个不太为人所知的,但实用的PHP函数
  6. java短视频上传阿里云流程_短视频上传
  7. Java设计模式(二) 观察者模式
  8. VScode使用gitbash的配置方法
  9. 量子计算机 长生不老,这种准粒子“长生不老”,有望提升量子计算机性能
  10. [转] 基于 Apache Mahout 构建社会化推荐引擎
  11. 免费计算机网络基础ppt,计算机网络基础概念课件.ppt
  12. 信号与系统28(状态变量与状态方程)
  13. linux没有无线wifi密码忘记,新版tplink无线密码(wifi密码)忘记了怎么办?
  14. 懒人必备神器 !一个创意十足的 Python 命令行工具
  15. Dingoapi的使用
  16. WIN32 API GetLastError()返回值含义列表
  17. 【VUE】vue实现登录滑动拼图验证的两种方法,纯前端组件验证以及前后端同时验证
  18. Error: Converting circular structure to JSON解决方法
  19. php网站的毕业论文,PHP个人博客网站(含毕业论文 )
  20. VM的下载与安装(一)

热门文章

  1. egg.js入门教程视频文件(转载于cnode社区)
  2. Azure媒体服务的Apple FairPlay流功能正式上线
  3. matlab体素化,一种三维激光点云数据快速体素化处理方法与流程
  4. Linux Debian 系统的单网卡绑定多个IP地址的操作步骤
  5. 多表联查--01---LEFT JOIN 实现多表联查
  6. 理解-1NF,2NF,3NF
  7. Springboot项目中使用Kafka
  8. [转]增强型N沟道mos管(如si2300)开关条件
  9. Debezium的MySQL连接器的工作原理
  10. python的多线程使用setDaemon有什么意义?