我为什么不喜欢MyBatis-Plus
mybatis plus兼容mybatis的相关配置和使用方式,除了generator不同。新项目可以根据项目情况使用,旧项目那就不用折腾了。运行的项目通常情况下稳定第一。新项目如果由你全权负责后端,你想用哪个就用哪个,如果团队,就得讨论一下。作为个人开发者,那不是屁话,两个必须要会。项目上可以优先plus。
mybatis-plus作为简化数据库操作的增强工具,长久以来,其联表查询能力一直是开发者的诟病。复杂连接查询仍需手动编写SQL,陷入繁琐的xml文件中。然而,随着mybatis-plus-join(简称mpj)工具的出现,这一困境得到解决。mpj彻底解放了开发者从xml地狱中,提供了与mybatis-plus相似的接口进行联表查询。
哈喽大家好,我是Hydra。我的文章旨在解决在使用 mybatis-plus 这一强大的简化数据库操作工具时,联表查询能力长期以来被广泛诟病的问题。长久以来,处理复杂的联表查询,如左连接或右连接,仍需手动编写 SQL 语句,陷入繁琐的 XML 代码中。
在考虑项目技术选型时,对比了JPA(Java Persistence API)和MyBatis-Plus的不同之处。主要的持久层框架包括Spring JDBC Template、MyBatis和MyBatis-Plus。Spring JDBC Template简单包装了底层JDBC操作,提供连接管理及异常处理,体积较小且不需要额外库。
MyBatis-Flex 是一个轻量、高性能且灵活优雅的 MyBatis 增强框架,相比 MyBatis-Plus 在性能、灵活性和功能扩展性上更具优势,尤其在复杂查询场景下效率显著提升。以下是详细分析:核心特性与优势轻量性 仅依赖 MyBatis,无第三方拦截器或解析器,通过 SqlProvider 实现核心功能。
Maven pom引入:在项目pom.xml中添加mybatis-plus-generator-ui的依赖。新建程序入口,以main函数的方式运行:运行main方法,配置数据库连接信息。mybatis-plus-generator-ui提供了一系列功能,包括但不限于:Table的查询和浏览:直接浏览和查询配置的数据源的数据表信息,选择生成模板代码。
为什么mybatisplus这么好用,反而用的不多?
1、使用MybatisPlus后,开发效率显著提升,提升幅度达到了惊人的10倍。原本Mybatis虽然简化了jdbc操作,但在大项目中,手动编写Mapper接口的增删改查和分页代码变得繁琐。
2、查询方法未正确使用分页参数参数传递错误:使用MyBatis-Plus时,需通过Page对象或IPage接口传递分页参数,例如new Page(1, 10)表示第1页、每页10条。方法调用错误:需调用支持分页的方法(如selectPage、selectMapsPage),若误用selectList等非分页方法,SQL中不会添加LIMIT子句。
3、与“真批量”的本质区别数据库级真批量需满足: 合并多条SQL为一个批处理请求(如JDBC的`addBatch()`+`executeBatch()`); 一次网络交互完成多记录更新; 事务内批量提交日志。
4、问题起因 在多数据库场景下,不同业务逻辑可能会需要访问不同的数据源。使用Mybatis plus的@DS注解可以实现数据源的动态切换。但在实际开发中,遇到的挑战是如何在事务中正确处理多数据源问题。
5、版本兼容性:确保你使用的Mybatisplus版本以及动态数据源相关的依赖版本是兼容的。有时候,版本不兼容也会导致一些功能无法正常使用。通过以上步骤,你应该能够定位并解决Mybatisplus中配置多数据源使用@DS注解不生效的问题。如果问题仍然存在,建议查阅Mybatisplus的官方文档或社区论坛,寻求更专业的帮助。



