什么么是JPA?

全称Java Persistence API(JAVA对象持久化API),可以通过注解或者XML描述【对象-关系表】之间的映射关系,并将实体对象持久化到数据库中。

为我们提供了:

1)ORM(Objrct Relational Mapping)映射元数据:JPA支持XML和注解两种元数据的形式,元数据描述对象和表之间的映射关系,框架据此将实体对象持久化到数据库表中;

如:@Entity、@Table、@Column、@Transient等注解。

2)JPA 的API:用来操作实体对象,执行CRUD操作,框架在后台替我们完成所有的事情,开发者从繁琐的JDBC和SQL代码中解脱出来。

如:entityManager.merge(T t);

3)JPQL查询语言:通过面向对象而非面向数据库的查询语言查询数据,避免程序的SQL语句紧密耦合。

如:from Student s where s.name = ?

但是:

JPA仅仅是一种规范,也就是说JPA仅仅定义了一些接口,而接口是需要实现才能工作的。所以底层需要某种实现,而Hibernate就是实现了JPA接口的ORM框架。

也就是说:

JPA是一套ORM规范,Hibernate实现了JPA规范!如图:

什么是spring data jpa?

spirng data jpa是spring提供的一套简化JPA开发的框架,按照约定好的【方法命名规则】写dao层接口,就可以在不写接口实现的情况下,实现对数据库的访问和操作。同时提供了很多除了CRUD之外的功能,如分页、排序、复杂查询等等。

Spring Data JPA 可以理解为 JPA 规范的再次封装抽象,底层还是使用了 Hibernate 的 JPA 技术实现。如图:

接口约定命名规则可以参照此博客 Spring Data JPA语法

最新文章

  1. 删除github仓库中的某个文件夹
  2. Android 升级SQLite数据库
  3. AD账号创建日期、最近一次登录时间、最近一次重置密码时间查询
  4. PAT (Basic Level) Practise:1014. 福尔摩斯的约会
  5. .className = "highlight";.setAttribute("class", "highlight");
  6. return,exit,die
  7. mysql基础三(视图、触发器、函数、存储过程、事务、防注入)
  8. Month Calendar
  9. 从Ecma规范深入理解js中的this的指向
  10. Ajax提交底层原型XMLHttpRequest
  11. Django--admin源码流程
  12. Solr搜索引擎搭建详细过程
  13. SharePoint 2013 图文开发系列之入门教程
  14. js == 运算规则解析
  15. finereport报表--动态格间运算 一
  16. ubuntu搭建php开发环境记录
  17. Android 自定义View二(深入了解自定义属性attrs.xml)
  18. Dubbo下载-从missing artifactId说起
  19. Codeforces Round #228 (Div. 1) A. Fox and Box Accumulation 贪心
  20. android studio Cannot resolve symbol '@drawable/XXX'等问题解决办法

热门文章

  1. Zabbix4.2Server端部署
  2. wampserver apache 500 Internal Server Error解决办法
  3. mybatis的配置文件详解(二)
  4. docker 在push镜像到本地registry出现的500 Internal Server Error
  5. kudu_CM安装准备工作
  6. python之select与selector
  7. Unity 截图选择框,中间全透明,边缘半透明
  8. Qt QMutexLocker_自动解锁的机制
  9. BZOJ 3658: Jabberwocky (双向链表+BIT)
  10. 【git】git中使用https和ssh协议的区别以及它们的用法