V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
xd666888
V2EX  ›  程序员

Mybaits-Flex 和 Mybatis-Plus?

  •  1
     
  •   xd666888 · 2023-07-28 10:41:50 +08:00 · 3644 次点击
    这是一个创建于 502 天前的主题,其中的信息可能已经有所发展或是发生改变。
    昨天打开公众号,发现关于 Java 的公众号账号都在推广一个叫 Mybaits-Flexde 框架。然后今天 MP 的作者发文说 Flex 框架涉及抄袭,现在这个事情还在不断扩大.....于是想发帖问问各位 v 友如何看这件事?







    14 条回复    2023-08-18 12:19:02 +08:00
    lsk569937453
        1
    lsk569937453  
       2023-07-28 10:55:52 +08:00
    看上去 mybatis-flex 就是基于 Mybatis-plus 开发的,在 Mybatis-plus 的基础上加了一些功能。然后改了下类名字就算自己开发的是吗。。。。

    顺便吐槽一句 Javer 屁事真多,是语言太简单拉低了入门的门槛吗?什么阿猫阿狗都混进来了。。。。

    曹,发现自己也是搞 Java 的。
    banmuyutian
        2
    banmuyutian  
       2023-07-28 11:08:02 +08:00
    图片看不到,Mybatis 也拼错了……
    yazinnnn
        3
    yazinnnn  
       2023-07-28 11:14:45 +08:00
    少看点公众号
    hrong
        4
    hrong  
       2023-07-28 11:24:36 +08:00 via iPhone
    两个都不用 只用原生 不解释
    790002517zzy
        5
    790002517zzy  
       2023-07-28 11:27:56 +08:00 via Android   ❤️ 1
    用 mybatis+jpa 就好了 这两个都不建议用
    a1274598858
        6
    a1274598858  
       2023-07-28 11:34:19 +08:00   ❤️ 2
    两者的实现方式是不同的,
    mp 是基于注入的方式实现 CRUD 。
    flex 基于 mybatis 官方提供的 ProviderSqlSource 去实现 CRUD
    xudaxian520bsz
        7
    xudaxian520bsz  
       2023-07-28 11:41:19 +08:00
    xudaxian520bsz
        8
    xudaxian520bsz  
       2023-07-28 11:42:15 +08:00
    MybatisPlus 和 MybatisFluent 都是对 MyBatis 的增强工具,提供了更多的功能和便利性。它们之间的区别主要在以下几个方面:

    实现机制:MybatisPlus 通过覆写和替换 MyBatis 的一些内部类型来实现增强,其机制较为复杂。相反,MybatisFluent 的实现机制非常轻量级,基于 MyBatis 的 Provider 注解进行开发,并且没有隐藏的逻辑。这使得 MybatisFluent 在功能和用户代码整洁方面表现优异。

    功能完整性:MybatisPlus 的条件构造器仅封装了基本的 SQL 操作,对于字段、条件、别名等需要进行字符串拼接,容易出现由于拼写错误导致的 SQL 异常。而 MybatisFluent 支持多表 JOIN 、UNION 、嵌套查询以及几乎所有标准 SQL 语法,足以满足大多数场景。

    用法:MybatisPlus 和 MybatisFluent 都可以构造复杂的业务 SQL 语句,但是使用方式略有差异。Fluent MyBatis 提供了更好的 IDE 语法辅助,通过方法调用的方式构建查询语句,使得代码更具可读性。

    使用范围:MybatisPlus 在国内的知名度较高,得到了许多大型企业的支持和应用,是比较成熟和稳定的框架。而 MybatisFluent 相对较新,由阿里云开发,功能强大,正在逐渐崭露头角。
    xudaxian520bsz
        9
    xudaxian520bsz  
       2023-07-28 11:43:37 +08:00
    MybatisPlus 和 MybatisFlex 有何不同?

    根据提供的信息,MybatisPlus 和 MybatisFlex 都是对 MyBatis 的增强工具,提供了更多的功能和便利性。它们之间的区别主要在以下几个方面:

    分页查询支持:MybatisPlus 和 MybatisFlex 在分页查询方面存在差异。MybatisPlus 支持分页查询,并且可以进行分页查询之总量缓存,即将总数据量缓存在缓存中。而 MybatisFlex 也支持分页查询,但不支持分页查询之总量缓存,这可能会在数据量较大时影响查询性能。

    多表查询:MybatisFlex 支持更丰富的多表查询,包括 from 多张表和 left join 、inner join 等多表查询,使得在复杂场景下的多表操作更加便捷。相比之下,MybatisPlus 在多表查询方面的支持相对较弱,仅支持对 entity 的基本增删改查。

    SQL 解析设计:MybatisFlex 在分页查询上采用了无 SQL 解析设计,这使得其更轻量、性能更高。而 MybatisPlus 在分页查询上需要进行 SQL 解析,可能会带来一定的性能开销。

    其他功能支持:在提供的信息中,并未提及 MybatisPlus 和 MybatisFlex 在其他功能方面的区别,因此无法对其他功能进行详细比较。

    综上所述,MybatisPlus 和 MybatisFlex 在分页查询支持、多表查询以及 SQL 解析设计等方面存在一些区别。开发者可以根据项目需求和功能要求来选择合适的增强工具。
    yule111222
        10
    yule111222  
       2023-07-28 13:40:06 +08:00   ❤️ 1
    都不建议用+1
    mmdsun
        11
    mmdsun  
       2023-07-28 14:28:17 +08:00   ❤️ 1
    建议用 JPA ,对 DDD 支持良好有 @DomainEvents @AfterDomainEventPublication 等注解辅助。

    真抄的话,建议模仿微软家的 Ef core 那 API 才叫设计好:
    https://learn.microsoft.com/zh-cn/ef/core/querying/
    hidemyself
        12
    hidemyself  
       2023-07-28 14:41:01 +08:00
    推广 Mybaits-Flexde 就推广,碰瓷就是不对的
    mmdsun
        13
    mmdsun  
       2023-08-18 09:21:36 +08:00 via iPhone   ❤️ 1
    @Livid #7 楼很多 AI 回复,站长来看看是不是机器人水贴
    Livid
        14
    Livid  
    MOD
       2023-08-18 12:19:02 +08:00
    @mmdsun 那个账号已经被彻底 ban 。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2719 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 14:35 · PVG 22:35 · LAX 06:35 · JFK 09:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.