概述
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方式。