对比MyBatis、Hibernate、Spring Data Jpa

1 概念和定位

MyBatisHibernateSpring Data Jpa
半自动ORM(Data Mapper)框架,需要手写SQL,只简化了JDBC操作全自动ORM框架(Active Recorder),自动生成SQL语句并执行不是ORM只是基于JPA规范的Repository抽象
通过XML或注解配置SQL,将JAVA与数据库记录映射在JPA规范出现之前就已存在,以Session Factory为核心默认使用Hibernate做为实现
适合需要精细控制SQL的场景提供对象关系(ORM)映射,将POJO映射到数据库表目标是简化数据库访问层代码,只需定义接口即可自动实现查询

2 核心特性对比

特性MyBatisHibernateSpring Data Jpa
SQL控制手动编写SQL自动生成SQL自动生成SQL
学习曲线较低较高中等
性能优化更易优化需要调优需要调优
数据库迁移性较差较好较好
复杂查询支持优秀一般一般
开发效率中等高(简单CRUD)最高(简单CRUD)

3 适应场景

MyBatisHibernateSpring Data Jpa
需要景旭控制SQL的项目传统企业级应用开发基于Spring 框架的快速开发
复杂多表关联关系查询需求变更不频繁的项目基于CRUD操作居多的微服务
互联网公司快速迭代项目需要高度对象化思维的项目西药减少样板代码的项目

4 优缺点对比

优点

MybatisHibernateSpring Data Jpa
SQL灵活控制、便于优化全自动ORM,开发效率高极大简化DAO层开发
学习成本低,适合有SQL经验的开发者提供缓存机制与Spring生态无缝集成
性能通常较好数据库移植性好支持多种JPA集成

发表回复

您的电子邮箱地址不会被公开。