关于Mybatis与JPA的优缺点说明
作者:春风化作秋雨 发布时间:2023-08-23 22:28:33
标签: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一定加上,不然会报错。
来源:https://adong.blog.csdn.net/article/details/122146606


猜你喜欢
- 配置java环境变量这里是将环境变量配置在etc/profile,即为所有用户配置JDK环境。sudo vi /etc/profile配置环
- 泛型概述我们都知道集合中是可以存放任意对象的,只要把对象存储集合后,那么这时他们都会被提升成Object类型。当我们在取出每一个对象,并且进
- 调研了一下目前的路由框架,ARouter(阿里的),ActivityRouter都使用了apt技术 编译时注解,个人想法是一口吃不成胖子,先
- 建造者模式是Java中一种创建型设计模式,它的主要目的是将一个复杂对象的构建过程分解为多个简单对象的构建过程,并且使这些构建过程按照一定的顺
- ListView如何实现简单列表,供大家参考,具体内容如下效果图:啥也没干的ListView张这样:fry.Activity01packag
- ConstantConstant 和 ConstantPool 是用于表示常量的一种机制。Constant 接口定义了常量的基本属性和方法,
- 本文以一个简单的实例形式讲述了C#模板方法模式的实现方法,分享给大家供大家参考。具体实现方法如下:这里假设要做一道红烧肉,做法有很多,在不同
- 可以使用 Java 8 中的 Map.replaceAll() 方法将所有的值转为 String 类型:Map<String, Obj
- Stream流常见的中间操作方法Streamfilter(Predicate predicate):用于对流中的数据进行过滤predicat
- 一、原理1、不变模式(不可变对象)在并行软件开发过程中,同步操作似乎是必不可少的。当多线程对同一个对象进行读写操作时,为了保证对象数据的一致
- 一、什么是SFTP?SFTP是一个安全文件传送协议,可以为传输文件提供一种安全的加密方法。SFTP 为 SSH的一部份,是一种传输文件到服务
- 创建WebService项目首先安装下.NET Framework4.6.2-4.7.1开发工具。然后就是新建 ASP.NET Web应用程
- 方式一:通过java.net.InetAddress类获取public void test1() { try { InetAdd
- 1.如何创建一个有效的AudioRecorder实例 Android各种设备的采样频率不同,输入的声道数也不同,如果采用固定的采样频率和声道
- 这篇文章主要介绍了Java日期与时间类原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参
- 一、什么是状态模式定义:当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。主要解决:当控制一个对象状态的条件表达式过于
- 一、简介在Flutter应用开发过程中,多个页面的跳转需要使用路由,除了官方提供的Navigator外,我们还可以使用一些第三方路由框架来实
- 目录一、需求二、步骤三、结果一、需求把以下txt中含“baidu”字符串的链接输出到一个文件,否则输出到另外一个文件。二、步骤1.LogMa
- 一、logback日志技术介绍Spring Boot中使用的日志技术为logback。其与Log4J都出自同一人,性能要优于Log4J,是L
- Guava EventBusEventBus是Guava的事件处理机制,是设计模式中观察者模式(生产/消费者编程模型)的优雅实现。对于事件监