SpringDataJPA入门
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入门相关推荐
- springDataJpa入门教程(5)-单表动态条件查询+分页
springDataJpa入门教程 springDataJpa入门教程(1)-基于springBoot的基本增删改查 springDataJpa入门教程(2)-Specification动态条件查询+ ...
- SpringDataJPA入门就这么简单
一.SpringData入门 在上次学SpringBoot的时候,那时候的教程就已经涉及到了一点SpringData JPA的知识了.当时还是第一次见,觉得也没什么大不了,就是封装了Hibernate ...
- Spring-Data-JPA入门--增删改查1
上一篇已经简单介绍了一下Spring-Data-JPA,也可以去查看官网 (1)jpa的dao只有接口没有实现类了.所以就不能用原先的扫描方式了.所以就不能用那4个注解了@Controller,@Se ...
- HttpClient实战爬虫B站番剧
准备 我们打开一个b站首页,选择番剧索引. https://www.bilibili.com/anime/index/#season_version=-1&area=-1&is_fin ...
- SpringSecurity安全控件使用指南
写在前面: 从2018年底开始学习SpringBoot,也用SpringBoot写过一些项目.现在想对学习Springboot的一些知识总结记录一下.如果你也在学习SpringBoot,可以关注我,一 ...
- Spring Security 实现动态权限菜单方案(附源码)
点击关注公众号,实用技术文章及时了解 系统权限管理 1.前言 在实际开发中,开发任何一套系统,基本都少不了权限管理这一块.这些足以说明权限管理的重要性.其实SpringSecurity去年就学了,一直 ...
- boot spring test 文档_SpringBoot入门建站全系列(五)使用Spring-data-jpa操作数据库
SpringBoot入门建站全系列(五)使用Spring-data-jpa操作数据库 SpringBoot操作数据库有多种方式,如 JDBC直接操作:太古老了,没人愿意这样玩 Mybatis插件:比较 ...
- SpringDataJpa系列一之初识及入门案例搭建
本文章参考文档为<SpringDataJpa从入门到精通> 首先, 我觉得入门SpringDataJpa的话, 我们首先要理清楚. JPA.Hibernate和SpringDataJpa的 ...
- SpringBoot入门建站全系列(六)Spring-data-jpa进阶使用
SpringBoot入门建站全系列(六)Spring-data-jpa进阶使用 上一篇介绍了Mybatis的配置和基本用法<SpringBoot入门建站全系列(五)使用Spring-data-j ...
最新文章
- 命令行程序增加 GUI 外壳
- mysql insertOrUpdate 方法
- 'module' object is not callable
- Kubernetes理论基础
- 10个不太为人所知的,但实用的PHP函数
- java短视频上传阿里云流程_短视频上传
- Java设计模式(二) 观察者模式
- VScode使用gitbash的配置方法
- 量子计算机 长生不老,这种准粒子“长生不老”,有望提升量子计算机性能
- [转] 基于 Apache Mahout 构建社会化推荐引擎
- 免费计算机网络基础ppt,计算机网络基础概念课件.ppt
- 信号与系统28(状态变量与状态方程)
- linux没有无线wifi密码忘记,新版tplink无线密码(wifi密码)忘记了怎么办?
- 懒人必备神器 !一个创意十足的 Python 命令行工具
- Dingoapi的使用
- WIN32 API GetLastError()返回值含义列表
- 【VUE】vue实现登录滑动拼图验证的两种方法,纯前端组件验证以及前后端同时验证
- Error: Converting circular structure to JSON解决方法
- php网站的毕业论文,PHP个人博客网站(含毕业论文 )
- VM的下载与安装(一)
热门文章
- egg.js入门教程视频文件(转载于cnode社区)
- Azure媒体服务的Apple FairPlay流功能正式上线
- matlab体素化,一种三维激光点云数据快速体素化处理方法与流程
- Linux Debian 系统的单网卡绑定多个IP地址的操作步骤
- 多表联查--01---LEFT JOIN 实现多表联查
- 理解-1NF,2NF,3NF
- Springboot项目中使用Kafka
- [转]增强型N沟道mos管(如si2300)开关条件
- Debezium的MySQL连接器的工作原理
- python的多线程使用setDaemon有什么意义?