spring data jpa(以下简称 sdj)

jpa类似jdbc,封装了各种接口。 然后交给各个厂商去实现。 在程序员严重,调用的api都是一样的, 只有驱动程序不同。就是加了一层封装。

jpa的作用就是为了封装所有的orm框架(比如mybatis,hibernate等)

spring data jpa 是对jpa的又一层封装。 主要是为了和spring全家桶能够更好的融合。

orm思想:就是把表和实体对应起来。 让操作表变成操作实体。 这样面向对象编程更加简单。

spring data jpa 的主要使用方法就是dao层继承两个接口就行了
image.png

原理:接口实现类由sdj 使用动态代理生成
image.png
image.png
spring data jpa其实就是对jpa进行了一层封装。
如上图所示,调用sdj的findOne(),最终底层还是使用了EntityManager.find()方法实现的查询。即仍然是jpa的api

image.png

SpecificationExector 动态查询

image.png