美文网首页
Spring Data JPA 与 Mybatis

Spring Data JPA 与 Mybatis

作者: 哈哈11122 | 来源:发表于2018-09-21 11:41 被阅读0次

    Spring Data JPA 与 Mybatis

    1.概述

    Spring Data JPA可以理解为 JPA 规范的再次封装抽象,底层还是使用了 Hibernate 的 JPA 技术实现。

    MyBatis本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。Mybatis:着力于POJO与SQL之间的映射关系。

    2.性能

    ​ 由于 Hibernate 比 MyBatis 抽象封装的程度更高,理论上单个语句之心的性能会低一点(所有的框架都是一样,排除算法上的差异,越是底层,执行效率越高)。 但 Hibernate 会设置缓存,对于重复查询有一定的优化。所以,从整体的角度来看性能的话,其实两者不能完全说谁胜谁劣。

    3.与 Spring 的集成

    ​ Spring 以及 Spring Boot 官方都没有针对 MyBatis 有具体的支持,但对 Hibernate 的集成一直是有的。但这并不表明 MyBatis 无法与 Spring Boot 集成,毕竟现在互联网企业,还是很流行使用MyBatis 和 Spring 。MyBatis 官方社区自身也是有 对 Spring / Spring boot 集成做支持的,所以在技术上,两者都不存在问题。

    4.编码

    Hibernate的开发难度要大于Mybatis。主要是由于Hibernate封装了完整的对象关系映射机制,以至于内部的实现比较复杂、庞大,学习周期较长。

    Mybatis 主要依赖于SQL的编写与ResultMap的映射。

    5.数据库的扩展性

    Hibernate与数据库具体的关联都在XML中,所以HQL对具体是用什么数据库并不是很关心。

    Mybatis由于所有SQL都是依赖数据库书写的,所以扩展性,迁移性比较差。

    6.总结

    Mybatis可以进行更细致的SQL优化,查询必要的字段,但是需要维护SQL和查询结果集的映射。数据库的移植性较差,针对不同的数据库编写不同的SQL。

    Hibernate对数据库提供了较为完整的封装,封装了基本的DAO层操作,有较好的数据库移植性。但是学习周期长,开发难度大于Mybatis。

    两者与Spring的集成都很好,没有区别。

    相关文章

      网友评论

          本文标题:Spring Data JPA 与 Mybatis

          本文链接:https://www.haomeiwen.com/subject/aasanftx.html