JPA和MyBatis的优缺点对比,你是不是都不知道有哪些?

简介:   # 什么是JPA  JPA是一种规范,它简化了现有持久化的开发,并且充分吸收了Hibernate、TopLInk、JDO等框架。SpringData JPA是全自动框架,不需要自己写sql,当然也可以自己写sql实现。而自动生成sql这点是优点,也是缺点,因为生成的sql可读性差,而且一些业务比如执行逻辑删除等还是需要自己来实现sql。  # 什么是Mybatis  Mybatis是一种半自动的ORM框架,它简单易上手,没有第三方依赖,支持对象与数据库的ORM关系映射,将sql代码与业务代码分离,使得开发人员可以更自如的写出高效的sql,不过反过来说不像SpringData J

  # 什么是JPA

  JPA是一种规范,它简化了现有持久化的开发,并且充分吸收了Hibernate、TopLInk、JDO等框架。SpringData JPA是全自动框架,不需要自己写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与其他持久化技术的比较。

  缺点

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

  Mybatis的优缺点

  优点

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

  缺点

  SQL语句的编写工作量较大,尤其是字段多、关联表多时,更是如此,对开发人员编写SQL语句的功底有一定要求SQL语句依赖于数据库,导致数据库移植性差,不能随意更换数据库当希望对象的持久化对应用程序完全透明是,不适合使用Mybatis当数据库有移植需求或需要支持多种数据库时,不适合使用Mybatis缓存使用不当,容易产生脏数据

  来源:0x9/RWqKk

目录
相关文章
|
存储 SQL Java
Springboot Mybatis 、JPA 调用存储过程,实战教程
Springboot Mybatis 、JPA 调用存储过程,实战教程
1131 0
Springboot Mybatis 、JPA 调用存储过程,实战教程
|
4月前
|
前端开发 Java 数据库连接
一天十道Java面试题----第五天(spring的事务传播机制------>mybatis的优缺点)
这篇文章总结了Java面试中的十个问题,包括Spring事务传播机制、Spring事务失效条件、Bean自动装配方式、Spring、Spring MVC和Spring Boot的区别、Spring MVC的工作流程和主要组件、Spring Boot的自动配置原理和Starter概念、嵌入式服务器的使用原因,以及MyBatis的优缺点。
|
5月前
|
SQL Java 数据库连接
Mybatis的优缺点和适用场景
Mybatis是一种基于Java语言的持久化框架,它能够让开发人员更加方便地进行数据库操作,同时也能够提高程序的性能和可维护性。
113 2
|
5月前
|
SQL Java 数据库连接
Java面试题:简述ORM框架(如Hibernate、MyBatis)的工作原理及其优缺点。
Java面试题:简述ORM框架(如Hibernate、MyBatis)的工作原理及其优缺点。
82 0
|
7月前
|
SQL 缓存 Java
MyBatis有哪些优缺点?
MyBatis有哪些优缺点?
79 1
|
Java 数据库连接 测试技术
微服务技术系列教程(03) - SpringBoot - 整合各种数据源(JdbcTemplate、MyBatis、JPA)
微服务技术系列教程(03) - SpringBoot - 整合各种数据源(JdbcTemplate、MyBatis、JPA)
61 0
|
SQL Java 关系型数据库
Spring Boot常用数据库开发技术总结:JDBCTemplate、JPA、Mybatis
1.概述 数据库开发一直是JAVA开发的核心之一,作为现在JAVA EE的基石框架,Spring Boot自身携带了一个JDBCTemplate框架,其对JDBC进行了基础的封装,使得Spring Boot原生就支持据库开发。同时Spring Boot也不排斥其它优秀的持久层框架,允许他们以极低的代价平滑的接入。 本文主要介绍最常用到的三个持久层框架,JdbcTemplate、JPA、mybatis如何接入Spring Boot并在其上进行开发。
319 0
|
SQL XML Java
java小技能:jpa & mybatis
表和表之间的关系推荐使用代码逻辑去控制,方便进行扩展(分表),不推荐使用注解。
202 0
java小技能:jpa & mybatis
|
Java 数据库连接 C++
MyBatis - MyBatis VS JPA
MyBatis - MyBatis VS JPA
120 0
MyBatis - MyBatis VS JPA
|
SQL XML Java
Mybatis的优缺点
Mybatis的优缺点
213 0