【191期】JPA和MyBatis的优缺点有哪些?

# 什么是JPA


JPA是一种规范,它简化了现有持久化的开发,而且充分吸取了Hibernate、TopLInk、JDO等框架。SpringData JPA是全自动框架,不须要本身写sql,固然也能够本身写sql实现。而自动生成sql这点是优势,也是缺点,由于生成的sql可读性差,并且一些业务好比执行逻辑删除等仍是须要本身来实现sql。
sql

# 什么是Mybatis


Mybatis是一种半自动的ORM框架,它简单易上手,没有第三方依赖,支持对象与数据库的ORM关系映射,将sql代码与业务代码分离,使得开发人员能够更自如的写出高效的sql,不过反过来讲不像SpringData JPA这种全自动的ORM框架,它须要本身实现sql语句,对开发人员的sql编写能力要求高,虽然将sql代码写在xml文件里方便了修改和编写,可这同时也下降了可读性。


JPA的优缺点


优势


  • 可持久化Java对象。JPA可以直接持久化复杂的Java对象,并可以使用JPQL语言进行复杂的查询。JPQL是JPA专用的查询语言,是相似于SQL的面向对象的查询语言。数据库

  • 使用简单。JPA使用注释(Annotation)定义Java对象与关系数据库之间的映射,而传统的ORM多使用xml配置文件。JPA使用起来比ORM要方便。使用JPA不用关注底层使用什么数据库。编程

  • 规范标准化。JPA是JCP组织发布的,是Java官方规定的统一的API。目前已经有多种框架实现JPA标准。使用了JPA的系统能够自由选择遵循JPA标准的框架,并可以自由更换。缓存

  • 事务性、大数据量。JPA底层使用关系数据库进行存储,所以具有关系数据库的特色,例如事务性、数据完整性、并发访问、大数据量等。并发

  • 与其余持久化技术相比,JPA有很大的技术优点。表列出了JPA与其余持久化技术的比较。app


缺点


由于sql语句是自动生成的可读性是比较差的,对于一些高级业务或者复杂的查询都须要本身来实现sql。


Mybatis的优缺点


优势


上手容易、提供xml标签、支持动态SQL编程,Mapper映射,支持对象与数据库的ORM字段关系映射。

缺点


  • SQL语句的编写工做量较大,尤为是字段多、关联表多时,更是如此,对开发人员编写SQL语句的功底有必定要求框架

  • SQL语句依赖于数据库,致使数据库移植性差,不能随意更换数据库ide

  • 当但愿对象的持久化对应用程序彻底透明是,不适合使用Mybatis大数据

  • 当数据库有移植需求或须要支持多种数据库时,不适合使用Mybatisspa

  • 缓存使用不当,容易产生脏数据

相关文章
相关标签/搜索