JPA、Hibernate、Spring Data JPA、MyBatis 他们之间的关系
JDBC
- 我们都知道不同的数据库厂商都有自己的实现类,后来统一规范也就有了数据库驱动JDBC
- Java在操作数据库的时候,底层使用的其实是JDBC,
- JDBC提供的API是一种统一操作不同数据库的规范,需要各大厂商来实现基层的驱动和接口。
- 因此JDBC API 很好屏蔽了每个数据的之间的差异
JPA
- JPA全称为Java Persistence API(Java持久层API) 是一种规范
- 是一种在 JavaEE 5中提出的Java持久化规范
- JPA统一了Java应用程序访问ORM框架的规范
- 规范如下:
- ORM映射元数据:JPA支持XML和注解两种元数据的形式,元数据描述对象和表之间的映射关系,框架据此将实体对象持久化到数据库表中
- JPA 的API:用来操作实体对象,执行CRUD操作,框架在后台替我们完成所有的事情,开发人员不用再写SQL了
- JPQL查询语言:通过面向对象而非面向数据库的查询语言查询数据,避免程序的SQL语句紧密耦合。
MyBatis
- MyBatis 封装了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。
- MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息。
- 将接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java对象)映射成数据库中的记录
Hibernate
- Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,
- 它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行
Spring Data JPA
- Spring Data JPA是一个JPA数据访问抽象。
- 要用于减少为各种持久层存储实现数据访问层所需的样板代码量
- Spring Data JPA底层就是使用的 Hibernate实现。
本文来自博客园,作者:vx_guanchaoguo0,转载请注明原文链接:https://www.cnblogs.com/guanchaoguo/p/17819207.html