• MyBatis和MyBatis-Plus的差别和优缺点


    MyBatis和MyBatis-Plus的主要差别在于功能和特性方面。MyBatis是一个优秀的持久层框架,它支持自定义SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以使用简单的XML或注解来配置和映射原生信息,将接口和Java的POJOs(Plain Old Java Objects, 普通的Java对象)映射成数据库中的记录。

    然而,MyBatis-Plus(简称MP)是MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,为简化开发、提高效率而生。MyBatis-Plus提供了更加丰富的功能特性,如分页插件、代码生成器、注解支持等。编码方式上,MyBatis在进行数据持久化时需要编写大量的XML配置文件和SQL语句,需要熟悉XML和SQL的编写规范。而MyBatis-Plus使用注解和API的方式进行数据持久化,使用更加便捷和简洁。性能和效率方面,MyBatis-Plus在功能扩展的同时也对性能进行了优化,提供了高效的SQL语句构建和执行功能,并支持动态SQL语句生成,从而提高了应用的性能和效率。

    至于优缺点,MyBatis的优点包括:

    1. 简单易学:MyBatis本身就很小且简单。没有任何第三方依赖,最简单安装只要两个jar文件+配置几个Sql映射文件易于学习,易于使用,通过文档和源代码,可以比较完全的掌握它的设计思路和实现。
    2. 灵活:MyBatis不会对应用程序或者数据库的现有设计强加任何影响。SQL写在XML里,从Java代码彻底分离,便于统一管理;提供XML标签,支持编写动态SQL。并且要调整SQL语句非常方便,无需要改变Java代码。
    3. 解除数据库耦合:通过提供DAO层,将业务逻辑和数据访问逻辑分离,使系统的设计更清晰,更易维护,更易单元测试。DAO层封装了数据访问细节,调用者只需要关心参数和返回值,无需关注内部实现。
    4. 提供映射标签,支持对象关系映射的映射过程中,对象属性的命名和数据库字段的命名也可以通过映射文件进行匹配,而不需要修改Java代码。
    5. 提供XML标签,支持编写动态SQL。并且要调整SQL语句非常方便,无需要改变Java代码。

    MyBatis的缺点包括:

    1. SQL语句的编写工作量较大,尤其是当字段多、关联表多时,对开发人员编写SQL语句的功底有一定要求。
    2. SQL语句依赖于数据库,导致数据库移植性差,不能随意更换数据库。

    至于MyBatis-Plus的优缺点,优点主要包括:

    1. 提供了分页插件,开发者无需关心具体操作,配置好插件之后,写分页等同于普通List查询。
    2. 提供了代码生成器,可以通过代码来自动快速生成Mapper、Model、Service、Controller层代码,大大减少了开发者的开发量。
    3. 支持全局通用方法注入,可以减少重复的代码编写。
    4. 提供了多种主键策略,支持多达4种主键策略(内含分布式唯一ID生成器),可自由配置,完美解决主键问题。
    5. 支持关键词自动转义,支持数据库关键词(order、key…)自动转义,还可自定义关键词。

    至于MyBatis-Plus的缺点,主要在于其过于依赖Mybatis以及Mybatis-Spring,如果要实现多表联查的业务需求,会比Mybatis更加复杂。此外,项目引入第三方插件包,未来升级有一定的兼容性问题。

    总的来说,MyBatis和MyBatis-Plus各有其优点和适用场景,选择使用哪个框架取决于项目的具体需求和开发团队的实际情况。

  • 相关阅读:
    Vue 报错error:0308010C:digital envelope routines::unsupported
    计算机网络——随机接入
    LabVIEW视觉采集软件(VAS)、视觉生成器(VB)和视觉开发模块(VDM)之间有什么不同
    ORA-12560:TNS:协议适配器错误
    一篇文章带你掌握MyBatis简化框架——MyBatisPlus
    云原生中间件RocketMQ-生产者消息返回状态,延迟消息,自定义消息发送规则,netty框架部分代码分析
    sqlite3入门
    java计算机毕业设计医院预约挂号系统源码+系统+mysql数据库+lw文档
    【C++要笑着学】Functor 仿函数 | 模拟实现 stack & queue | 模拟实现优先级队列
    EMQX 入门教程③——默认端口、端口策略和端口修改
  • 原文地址:https://blog.csdn.net/weixin_43784341/article/details/136506786