jdbc,jpa,spring data jpa,hibernate,mybatis区别

概述

jdbc是java连接数据库操作的原生接口

jpa是java持久化规范,是orm框架的标准,主流orm框架都实现了这个标准

spring data jpa是对jpa规范的再次抽象,底层还是用的实现jpa的hibernate技术

hibernate是一个标准的orm框架,实现了jpa

mybatis也是一个持久化框架,但不完全是一个orm框架,不是依照的jpa规范。

什么是orm?

orm(Object Relation Mapping) 对象关系映射,是对象持久化的核心,是对jdbc的封装。

hibernate VS mybatis VS jdbc

jdbc是比较底层的数据库操作方式,hibernate和mybatis都是在jdbc的基础上进行了封装。

hibernate是将数据库中的数据表映射为持久层的java对象,实现对数据表的完整性控制。hibernate的主要思想是面向对象,标准的orm。不建议自己写sql语句,如果确实有必要推荐hql代替。hibernate是全表映射,只需提供java bean和数据库表映射关系,

mybatis是将sql语句中的输入参数parameterMap和输出结果resultMap映射为java对象,放弃了对数据表的完整性控制,获得了更大的灵活性。mybatis拥抱sql,在sql语句方面有更大的灵活性,mybatis不是面向对象,不是标准的orm,更像是sql mapping框架。mybatis是半自动的,需要提供java bean,sql语句和数据库表的映射关系。

开发难度:

Hibernate因为是封装了完整的对象关系映射,内部实现比较复杂,学习周期大。

mybatis主要是配置文件中sql语句的编写

spring data上手快,通过命名规范,注解查询可简化操作

总结

如果是进行底层编程,需要对性能要求高,应采用jdbc方式。

如果直接操作数据库表,没有过多的定制,建议使用hibernate方式。

如果要灵活使用sql语句,建议采用mybatis方式。

你可能感兴趣的:(Java)