以上笔记来自极客时间spring全家桶学习以及jpa及mybatis对比网上资料梳理。
1 Spring jpa说明
1.1 spring ormapping
对象与关系的范式不匹配
Java Persistence API
JPA 为对象关系映射提供了了⼀一种基于 POJO 的持久化模型
• 简化数据持久化代码的开发⼯工作
• 为 Java 社区屏蔽不不同持久化 API 的差异
Spring Data
在保留留底层存储特性的同时,提供相对⼀一致的、基于 Spring 的编程模型
主要模块:
- Spring Data Commons
- Spring Data JDBC
- Spring Data JPA
- Spring Data Redis
1.2 常用jap注解
2 jpa、Hibernate与mybatis区别
Java Persistence API(Java 持久层 API):用于对象持久化的 API
JPA与Hibernate关系
JPA 是 Hibernate 的一个抽象,就像 JDBC 和 JDBC 驱动的关系
JPA 是一种 ORM 规范,是 Hibernate 功能的一个子集 (既然 JPA 是规范,Hibernate 对 JPA 进行了扩展,那么说 JPA 是 Hibernate 的一个子集不为过)
Hibernate 是 JPA 的一个实现
什么是spring data jpa
Spring Data JPA是Spring Data的子模块。使用Spring Data,使得基于“repositories”概念的JPA实现更简单和容易。Spring Data JPA的目标是大大简化数据访问层代码的编码。作为使用者,我们只需要编写自己的repository接口,接口中包含一些个性化的查询方法,Spring Data JPA将自动实现查询方法。
JPA默认使用hibernate作为ORM实现,所以,一般使用Spring Data JPA即会使用hibernate。我们再看看hibernate的官方概念,Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。
什么是mybatis
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。