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 ...
随机推荐
- 记一次线上SpringCloud-Feign请求服务超时异常排查
由于近期线上单量暴涨,第三方反馈部分工单业务存在查询处理失败现象,经排查是当前系统通过FeignClient调用下游系统出现部分超时失败(异常代码贴在下方). Caused by: feign.Ret ...
- 机器学习&恶意代码动态检测
目录 写在前面 1 基于API调用的统计特征 2 API序列特征 3 API调用图 4 基于行为的特征 references: 写在前面 对恶意程序动态检测方法做了概述, 关于方法1和2可以参考阿里云 ...
- 【转载】ASP.NET 内联代码、内联表达式、数据绑定表达式使用方法罗列(形式就是常说的尖括号 百分号 等于号 井号)
ASP.NET 内联代码.内联表达式.数据绑定表达式使用方法罗列(形式就是常说的尖括号 百分号 等于号 井号) 今天在做渭南电脑维修网的一个小功能时遇到了一些问题,因此特别列出,以备他日之用. 首先对 ...
- redis实现简易在线聊天室
redis_flask简易聊天室 项目构建 这时一个基于Redis数据库的简单小项目,使用redis缓存数据,并通过flask部署到浏览器,运行截图如下: 输入名字后,就可以登陆到聊天室,主要包括三个 ...
- nacos集群开箱搭建
记录/朱季谦 nacos是一款易于构建云原生应用的动态服务发现.配置管理和服务管理平台,简单而言,它可以实现类似zookeeper做注册中心的功能,也就是可以在springcloud领域替代Eurek ...
- golang中的goroutine
1. 概念 go中可以并发执行的活动单元称为goroutine当一个go程序启动时,一个执行main function的goroutine会被创建,称为main goroutinego func() ...
- CTFSHOW-SSRF篇
之前就想着写一下 ctfshow 的 wp, 但由于时间问题,一直没有机会, 其实是懒≥.≤ 这次趁着寒假刷几篇ctfshow的文章 那,开始吧. web351 存在一个flag.php页面,访问会返 ...
- 从服务端生成Excel电子表格(Node.js+SpreadJS)
Node.js是一个基于Chrome V8引擎的JavaScript运行环境,通常用于创建网络应用程序.它可以同时处理多个连接,并且不像其他大多数模型那样依赖线程. 对于 Web 开发者来说,从数据库 ...
- NOIP PJ/CSP-J 题目选做
1. luoguP7074 [CSP-J2020] 方格取数 2. luoguP5662 [CSP-J2019] 纪念品 3. luoguP2671 [NOIP2015 普及组] 求和 4. luog ...
- 利用Jemalloc进行内存泄漏的调试
内存不符预期的不断上涨,可能的原因是内存泄漏,例如new出来的对象未进行delete就重新进行复制,使得之前分配的内存块被悬空,应用程序没办法访问到那部分内存,并且也没有办法释放:在C++中,STL容 ...