Spring Data JPA 与 MyBatis 对比,你喜欢用哪个?
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 是 一 款 优 秀 的 持 久 层 框 架 , 它 支 持 定 制 化
SQL 、 存 储 过 程 以 及 高 级 映 射 。 MyBatis 避 免 了 几 乎 所 有 的 JDBC
代码 和手 动设 置参数以及获取结果集。MyBatis 可以使用简 单的 XML
或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java
Objects,普通的 Java对象)映射成数据库中的记录。
这 样 看 , Spring Data
JPA与MyBatis对比,起始也就是hibernate与MyBatis对比。所以,我们
直接来比较后两者。
Hibernate 与 MyBatis 简单对比
从基本概念和框架目标上看,两个框架差别还是很大的。hibernate是一个
自动化更强、更高级的框架,毕竟在java代码层面上,省去了绝大部分sql
编写,取而代之的是用面向对象的方式操作关系型数据库的数据。而MyBa
tis则是一个能够灵活编写sql语句,并将sql的入参和查询结果映射成POJO