关于Mybatis与JPA的优缺点说明

 更新时间:2022年06月10日 10:08:32   作者:春风化作秋雨  
这篇文章主要介绍了关于Mybatis与JPA的优缺点说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

Mybatis与JPA的优缺点

JPA java持久层API

可理解为一种规范,Hibernate就是其具体一个实现。它的实现应用是Spring DataJpa,Spring提供了一套简化开发框架,按照约定好的方法命名规则,编写dao层接口,即可在不编写实现情况下执行数据库操作,还提供了除CRUD以外的功能,比如分页、排序、复杂查询等。SpringDataJpa可以理解为对JPA的再次封装,底层仍旧是Hibernate。

JPA优势

1、JPA可移植性好,支持Hibernate方言。

2、提供单表CRUD方法,减少sql语句的编写,开发效率高,。

3、面向对象开发思想,对象化程度更高。

Mybatis优点

1、自己编写SQL语句,更灵活、性能较高。

2、SQL语句与代码相互分离,易于阅读和维护。

3、提供XML标签#{}、${}、 <if test=""></if>等,支持拼写动态SQL语句。

Mybatis缺点

1、单表的CRUD操作需要编写SQL语句,库表字段的新增修改删除,都要重新维护。

2、XML中有大量SQL需维护;参数变更来回切换修改。

3、Mybatis功能有限。 

JPA与Mybatis的区别

其实JPA和mybatis大体上没什么区别,架构上很相似,mybatis就是mapper层,JPA就是repository层,其他都一样的

JPA就是把mapper层的接口换成repository的接口

那么接口具体长什么样呢?

mapper层

自己写sql语句

JPA的repository

没有具体sql语句,看起来没有实现一样,但其实是遵循规则的实现,你只要写 findByXxx(Xxx xx) 就能根据某个键自动实现数据库查询,当然其他的语句也是可以实现的。

如果你觉得不灵活,也可以自己写,例如

最后的nativeQuery一定加上,不然会报错。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • javaweb配置jsp路径映射操作

    javaweb配置jsp路径映射操作

    这篇文章主要介绍了javaweb配置jsp路径映射操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-08-08
  • java+mysql模拟实现银行系统

    java+mysql模拟实现银行系统

    这篇文章主要为大家详细介绍了java+mysql模拟实现银行系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-05-05
  • idea创建maven父子工程导致子工程无法导入父工程依赖

    idea创建maven父子工程导致子工程无法导入父工程依赖

    创建maven父子工程时遇到一个问题,本文主要介绍了idea创建maven父子工程导致子工程无法导入父工程依赖,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-04-04
  • Java数据类型的规则

    Java数据类型的规则

    这篇文章主要介绍了Java数据类型的规则的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-12-12
  • mybatis关联关系映射的实现

    mybatis关联关系映射的实现

    MyBatis的关联关系映射在复杂数据模型中至关重要,使开发人员能够以最灵活的方式满足不同项目的需求,本文就来介绍一下mybatis关联关系映射的实现,感兴趣的可以了解一下
    2023-09-09
  • Java深入数据结构理解掌握抽象类与接口

    Java深入数据结构理解掌握抽象类与接口

    在类中没有包含足够的信息来描绘一个具体的对象,这样的类称为抽象类,接口是Java中最重要的概念之一,它可以被理解为一种特殊的类,不同的是接口的成员没有执行体,是由全局常量和公共的抽象方法所组成,本文给大家介绍Java抽象类和接口,感兴趣的朋友一起看看吧
    2022-05-05
  • Springboot通用mapper和mybatis-generator代码示例

    Springboot通用mapper和mybatis-generator代码示例

    这篇文章主要介绍了Springboot通用mapper和mybatis-generator代码示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-12-12
  • Spring Boot+Nginx实现大文件下载功能

    Spring Boot+Nginx实现大文件下载功能

    相信很多小伙伴,在日常开放中都会遇到大文件下载的情况,大文件下载方式也有很多,比如非常流行的分片下载、断点下载;当然也可以结合Nginx来实现大文件下载,在中小项目非常适合使用,这篇文章主要介绍了Spring Boot结合Nginx实现大文件下载,需要的朋友可以参考下
    2024-05-05
  • java selenium使用浏览器调试工具实现方法

    java selenium使用浏览器调试工具实现方法

    本文主要介绍java selenium使用浏览器调试工具,这里整理了几种浏览器的调试方法,有需要的小伙伴可以参考下
    2016-08-08
  • 全网最全SpringBoot集成swagger的详细教程

    全网最全SpringBoot集成swagger的详细教程

    swagger是当下比较流行的实时接口文文档生成工具,swagger分为swagger2 和swagger3两个常用版本,二者区别不是很大,主要对于依赖和注解进行了优化,swagger2需要引入2个jar包,swagger3只需要一个,用起来没有什么大的区别,本文给大家详细介绍,感兴趣的朋友一起看看吧
    2022-08-08

最新评论