Spring Data JPA应用之常规CRUD操作初体验
基于对于一个陌生的技术框架,先使用后研究其实现的原则(大部分本人如此,就如小朋友学习骑自行车不会先研究自行车是怎么动起来的而是先骑会了),对于Spring JPA先通过案例实践其怎么用吧。
用之前得明白Spring Data JPA是什么?首先JPA 是⼀套规范,内部是由接⼝和抽象类组成的。Spring Data JPA 是 Spring 提供的⼀套对 JPA 操作更加⾼级的封装,是在 JPA 规范下的专⻔⽤来进⾏数据持久化的解决⽅案。
下面进行具体实践:
需求:使⽤ Spring Data JPA 完成对 r_resume 表(简历表)的Dao 层操作(增删改查,排序,分⻚等)
数据库表设计——具体表结构及存量数据如下图:

大致开发流程汇总:
1、构建⼯程
创建⼯程导⼊坐标(Java框架于我们⽽⾔就是⼀堆jar)
配置 Spring 的配置⽂件(配置指定框架执⾏的细节)
编写实体类 Resume,使⽤ JPA 注解配置映射关系
编写⼀个符合 Spring Data JPA 的 Dao 层接⼝(ResumeDao接⼝)
2、操作 ResumeDao 接⼝对象完成 Dao 层开发
下面开始按大致流程进行具体的实践:
1、导入坐标(本人一般记不住都是在开发过程中,边开发变导入坐标)

2、配置Spring配置文件(xml)

如果使用注解进行配置,可以如下:

3、编写实体类Resume,使用JPA注解配置映射关系

4、编写符合Spring Data JPA数据范围规范的Dao层接口
使用Spring Data JPA建立数据访问层十分简单,只需要定义一个基础JpaRepository的接口即可,如下:

仅接口名,里面可以没有任何方法。
5、测试类

我们可以看下JpaRepository提供的方法:

整个过程中没有出现任何的sql相关的内容,甚至自定义的接口中方法都可以没有直接使用父类的方法。与Mybatis对比,可能某些查询更简便。
Spring Data JPA应用之常规CRUD操作初体验的更多相关文章
- Spring Data JPA教程, 第二部分: CRUD(翻译)
我的Spring Data Jpa教程的第一部分描述了,如何配置Spring Data JPA,本博文进一步描述怎样使用Spring Data JPA创建一个简单的CRUD应用.该应用要求如下: pe ...
- Spring Boot对Spring Data JPA的支持
前两篇介绍了Spring Data JPA的基本使用,本篇介绍Spring Boot 对JPA的支持.如下: 1)导入坐标 2)注解配置 其他配置同Spring Data JPA应用之常规CRUD操作 ...
- Spring Data JPA应用 之查询分析
在Spring Data JPA应用之常规CRUD操作初体验 - 池塘里洗澡的鸭子 - 博客园 (cnblogs.com)尾附上了JpaRepository接口继承关系及方法,可以知道JpaRepos ...
- Spring Data JPA笔记
1. Spring Data JPA是什么 Spring Data JPA是Spring Data大家族中的一员,它对对持久层做了简化,用户只需要声明方法的接口,不需要实现该接口,Spring Dat ...
- Spring Data JPA 教程(翻译)
写那些数据挖掘之类的博文 写的比较累了,现在翻译一下关于spring data jpa的文章,觉得轻松多了. 翻译正文: 你有木有注意到,使用Java持久化的API的数据访问代码包含了很多不必要的模式 ...
- Spring Boot使用Spring Data Jpa对MySQL数据库进行CRUD操作
只需两步!Eclipse+Maven快速构建第一个Spring Boot项目 构建了第一个Spring Boot项目. Spring Boot连接MySQL数据库 连接了MySQL数据库. 本文在之前 ...
- spring spring data jpa save操作事务
整合spring spring data jpa的时候,在save方法上加了@Transactional注解.此时调用springdatajpa save方法并不会真的把数据提交给数据库,而是缓存起来 ...
- spring data jpa使用懒操作
如果model对象的某属性使用lazy load,调用这个属性时会报错, failed to lazily initialize a collection of role could not init ...
- Java Spring Boot VS .NetCore (四)数据库操作 Spring Data JPA vs EFCore
Java Spring Boot VS .NetCore (一)来一个简单的 Hello World Java Spring Boot VS .NetCore (二)实现一个过滤器Filter Jav ...
随机推荐
- 【pwn】学pwn日记(堆结构学习)
[pwn]学pwn日记(堆结构学习) 1.什么是堆? 堆是下图中绿色的部分,而它上面的橙色部分则是堆管理器 我们都知道栈的从高内存向低内存扩展的,而堆是相反的,它是由低内存向高内存扩展的 堆管理器的作 ...
- linux base脚本编写-自动领取微信红包
bash脚本编写 语法 变量 定义: your_name = "ABC" 使用: echo $your_name 只读变量 a = "123" readonly ...
- Markdown anywhere
最近经常写文章,发现Markdown是一个非常方便的网页排版规范,详见:http://cesiumcn.org/markdown.html | http://cesium.coinidea.com/m ...
- CSS八种让人眼前一亮的HOVER效果
一.发送效果 HTML <div id="send-btn"> <button> // 这里是一个svg的占位 Send </button> & ...
- linux文件压缩与文件夹压缩(打包)
目录 一:linux文件压缩 1.linux常见的压缩包有哪些? 2.bzip压缩(文件) 二:打包(文件夹压缩) 1.打包命令 2.参数 3.参数解析(实战) 4.注意事项 简介: win中的压缩包 ...
- 西安腾讯DevOps面试题python算法输出列表数值下界
给定一个列表,然后给一个目标值,列表中两数求和等于目标值,要求输出列表两数的下界 如 list = [1,2,3,4,6,7,8] num=10 #!/usr/bin/python #coding=u ...
- a-b转换A-B
- UVA1619 感觉不错 Feel Good(良好的感觉) 题解
0.题面: 给出正整数n和一个(1 <= n <= 100 000)长度的数列,要求找出一个子区间,使这个子区间的数字和乘上子区间中的最小值最大.输出这个最大值与区间的两个端点. 1.思路 ...
- 谷歌CEO桑达尔·皮查伊:区块链可能撼动云计算
谷歌CEO桑达尔·皮查伊在周二的季度收益电话会议上承认了Web3和区块链的力量. 皮查伊表示,Web3描述了基于区块链的互联网新愿景,区块链是一种分散.安全.透明的技术,支持加密货币网络.不可替代代币 ...
- 趁着同事玩游戏偷偷认识k8s一家子补补课
趁着同事玩偷偷认识k8s一家子补补课 Kubernetes集群这个大家庭在容器化时代能够新军崛起,要感谢其众多可靠稳定,工作认真负责的优质成员. 这些兄弟姐妹们为集群提供故障转移和高可用性,保证k8s ...