|
比来公司在做新名目的技术选型,ORM 框架在 JPA 和 MybatisPlus 之间进行选择。既然说道 MybatisPlus ,那末不能不提 Mybatis 。首先理解一下他们的概念:
JPA
JPA是Java EE标准中的一套ORM框架,提供了一种规范化的API,使得开发者能够更便利地进行瓜葛型数据库的操作。JPA的完成框架如Hibernate、EclipseLink等能够疾速开发企业级运用,但机能相对于较低。
Mybatis
Mybatis是一种半自动化的数据拜候框架,需求开发者手动编写SQL语句,但Mybatis提供了一套弱小的映照机制来将SQL语句映照到Java办法上,以达到更加便捷、简洁和高效的数据拜候操作。Mybatis合适对SQL语句的细粒度管制和优化。
MybatisPlus
MybatisPlus是Mybatis框架的加强工具,简化了Mybatis的开发流程,提供了更丰硕的功用和更便捷的使用形式,同时还反对代码生成和自动分页等功用。MybatisPlus合适在疾速开发和简化代码编写方面进行运用。
做过正儿八经开发的人都知道,名目顶用的要末是JPA,要末是MybatisPlus,极多数可能用Mybatis,至于缘故大家确定也都分明,使用 Mybatis 要写一堆的SQL,即便再简略的查问也不例外,极大影响了开发效力。
那末 JPA 和 MybatisPlus 怎么选择呢?
JPA 比拟于 MybatisPlus 优点:
规范化API:JPA提供了一套规范化API,使得开发者能够更便利地进行瓜葛型数据库的操作,而无需关怀详细的完成细节。这样能够升高开发难度和保护本钱,同时也便利运用的迁徙和降级。对象瓜葛映照:JPA提供了一种对象瓜葛映照的形式,能够将Java对象与数据库表中的记载进行关联,使得开发者能够使用面向对象的思惟来操作数据库,而无需间接编写SQL语句,简化了代码的编写和保护。反对事务:JPA反对声明式事务办理,能够便利地完成事务管制,确保数据的残缺性和统一性。级联操作:JPA反对级联操作,能够自动处置关联实体之间的操作,如级联删除、级联更新等,增加了开发者的代码量。静态查问:JPA反对Criteria API和JPQL查问言语,能够按照实际需要静态生成查问语句,使得查问更加灵敏和高效。总的来讲,JPA相对于于MybatisPlus更为面向对象,更为规范化,提供了更多的开发方便和自动化特性,同时也升高了开发者的开发难度和保护本钱。
MybatisPlus 比拟于 JPA 优点:
灵敏性:MybatisPlus需求手动编写SQL语句,能够更为灵敏地进行SQL管制和优化。在实际开发中,有些繁杂查问语句难以经过JPA自动生成的SQL语句进行优化,此时MybatisPlus能够更好地知足需要。机能优化:MybatisPlus相对于于JPA,关于大数据量、高并发的场景下,拥有更好的机能优化才能,能够经过手动优化SQL语句、使用分页插件等形式来进步机能。代码生成:MybatisPlus提供了代码生成工具,能够按照数据库表构造自动生成Java代码,节俭了少量的开发时间和本钱。分页插件:MybatisPlus提供了弱小的分页插件,能够便利地完成分页功用,而且能够自动辨认和优化SQL语句,进步了分页的机能。注解式操作:MybatisPlus反对注解式操作,使得开发者能够更为便捷地进行数据库的操作,进步了开发效力和代码可读性。总之,MybatisPlus相对于于JPA更为灵敏和拥有更好的机能优化才能,同时还提供了代码生成、分页插件等方便功用,合用于需求对SQL进行细粒度管制和高机能要求的场景。然而,相对于于JPA,MybatisPlus在面向对象、规范化、自动化方面可能略逊一筹。
接上去说下这两个ORM框架的显著缺陷:
JPA 次要缺陷
上手相对于较难;JPA 在处置多表关联查问时繁杂度十分高;MybatisPlus 次要缺陷更多的SQL,所以致使保护起来相对于较难;因为SQL多,也更易泛起手写了得多拥有数据库方言的SQL,这就致使当切换底层数据库时,还需求修正SQL。又是一场半斤八两的较量,个别来讲,假如一个技术栈没有特别显著的劣势,逼得你必需使用它时,你的技术选型可能更为取决于团队的相熟水平。其实咱们这次选型也是基于这个斟酌,虽然还有一些其余缘故(前面再增补),因为之前名目都是使用的 MybatisPlus ,虽然这次选型时有充沛斟酌JPA,由于其杰出的面向对象特性,使得当前切换数据库变得简略。然而终究仍是败给了理想!!!! |
|