JPA、Hibernate、Spring Data JPA、MyBatis 他们之间的关系

发布时间 2023-11-09 10:59:55作者: vx_guanchaoguo0

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实现。