SpringMVC进阶(四) SpringData高级应用及其源码剖析

一. Spring Data JPA 概述

(一)什么是 Spring Data JPA

 

Spring Data JPA Spring 基于 JPA 规范 的基础上封装的⼀套 JPA 应⽤框架,可使开发者⽤极简的代码即可实现对数据库的访问和操作。它提供了包括增删改查等在内的常⽤功能!学习并使⽤
Spring Data JPA 可以极⼤提⾼开发效率。
说明: Spring Data JPA 极⼤简化了数据访问层代码。
如何简化呢?使⽤了 Spring Data JPA ,我们 Dao 层中只需要写接⼝,不需要写实现类,就⾃动具有了增删改查、分⻚查询等⽅法。
使⽤ Spring Data JPA 很多场景下不需要我们⾃⼰写 sql 语句

(二)Spring Data 家族

(三)Spring Data JPAJPA规范和Hibernate之间的关系

Spring Data JPA Spring 提供的⼀个封装了 JPA 操作的框架,⽽ JPA 仅仅是规范,单独使⽤规范⽆法具体做什么,那么 Spring Data JPA JPA 规范 以及 Hibernate JPA 规范的⼀种实现)之间的关系是什 么?

 

JPA 是⼀套规范,内部是由接⼝和抽象类组成的, Hiberanate 是⼀套成熟的 ORM 框架,⽽且
Hiberanate 实现了 JPA 规范,所以可以称 Hiberanate JPA 的⼀种实现⽅式,我们使⽤ JPA API 编程,意味着站在更⾼的⻆度去看待问题(⾯向接⼝编程)。
Spring Data JPA Spring 提供的⼀套对 JPA 操作更加⾼级的封装,是在 JPA 规范下的专⻔⽤来进⾏数据持久化的解决⽅案。

二. Spring Data JPA 应⽤

该小结的介绍主要看代码。

(一)需求:

使⽤ Spring Data JPA 完成对 tb_resume 表(简历表)的 Dao 层操作(增删改查,排序,
分⻚等)

(二)数据表设计

 (三)SQL建表语句

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for tb_resume
-- ----------------------------
DROP TABLE IF EXISTS `tb_resume`;
CREATE TABLE `tb_resume` (
 `id` bigint(20) NOT NULL AUTO_INCREMENT,
 `address` varchar(255) DEFAULT NULL,
 `name` varchar(255) DEFAULT NULL,
 `phone` varchar(255) DEFAULT NULL,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of tb_resume
-- ----------------------------
BEGIN;
INSERT INTO `tb_resume` VALUES (1, '北京', '张三', '131000000');
INSERT INTO `tb_resume` VALUES (2, '上海', '李四', '151000000');
INSERT INTO `tb_resume` VALUES (3, '⼴州', '王五', '153000000');
COMMIT;
SET FOREIGN_KEY_CHECKS = 1;

(四)开发步骤

构建⼯程
创建⼯程导⼊坐标( Java 框架于我们⽽⾔就是⼀堆 jar
配置 Spring 的配置⽂件(配置指定框架执⾏的细节)
编写实体类 Resume ,使⽤ JPA 注解配置映射关系
编写⼀个符合 Spring Data JPA Dao 层接⼝( ResumeDao 接⼝)
操作 ResumeDao 接⼝对象完成 Dao 层开发

(五)代码展示

完整代码示例请点击

三. Spring Data JPA 执⾏过程源码分析

(一)分析思路

resumeDao是⼀个代理对象,这个代理对象的类型是SimpleJapRepository,源码剖析的主要的过程,就是代理对象产⽣的过程。

(二)提出疑问

1. 这个代理对象是怎么产⽣,过程怎样?

2.这个代理对象类型SimpleJapRepository有什么特

别的?

(三)源码剖析

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

enterpc

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值