关于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一定加上,不然会报错。

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

相关文章

  • Java中spring读取配置文件的几种方法示例

    Java中spring读取配置文件的几种方法示例

    本篇文章中主要介绍了Java中spring读取配置文件的几种方法示例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-02-02
  • java中如何使用泛型方法比较大小

    java中如何使用泛型方法比较大小

    这篇文章主要介绍了java中如何使用泛型方法比较大小,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-04-04
  • idea打开运行配置java web项目的全过程

    idea打开运行配置java web项目的全过程

    这篇文章主要给大家介绍了关于idea打开运行配置java web项目的相关资料,有些时候我们用IDEA跑之前用eclipse中运行的项目的时候,总是不止所措,要不就是只展示html,要不就是不能部署成功,需要的朋友可以参考下
    2023-08-08
  • Java Serializable和Parcelable详解及实例代码

    Java Serializable和Parcelable详解及实例代码

    这篇文章主要介绍了Java Serializable和Parcelable详解,并附实例代码的相关资料,需要的朋友可以参考下
    2016-09-09
  • springmvc @ResponseStatus和ResponseEntity的使用

    springmvc @ResponseStatus和ResponseEntity的使用

    这篇文章主要介绍了springmvc @ResponseStatus和ResponseEntity的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-07-07
  • 关于Springboot日期时间格式化处理方式总结

    关于Springboot日期时间格式化处理方式总结

    这篇文章主要介绍了关于Springboot日期时间格式化处理方式总结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • java实现json字符串格式化处理的工具类

    java实现json字符串格式化处理的工具类

    这篇文章主要为大家详细介绍了如何使用java实现json字符串格式化处理的工具类,文中的示例代码简洁易懂,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-01-01
  • 详解Java阻塞队列(BlockingQueue)的实现原理

    详解Java阻塞队列(BlockingQueue)的实现原理

    这篇文章主要介绍了详解Java阻塞队列(BlockingQueue)的实现原理,阻塞队列是Java util.concurrent包下重要的数据结构,有兴趣的可以了解一下
    2017-06-06
  • 基于java 线程的几种状态(详解)

    基于java 线程的几种状态(详解)

    下面小编就为大家带来一篇基于java 线程的几种状态(详解)。小编觉得挺不错的,现在就想给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • 聊聊@Autowired注解注入,写接口名字还是实现类的名字

    聊聊@Autowired注解注入,写接口名字还是实现类的名字

    这篇文章主要介绍了聊聊@Autowired注解注入,写接口名字还是实现类的名字,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11

最新评论