官方文档提供了一个小案例 自定义 Mapper 示例
解读:DefaultSqlInjector就是一个注册类,其中注册了一系列 mybatis-plus 内置的 update,insert,select SQL 语句方法,
并且对表主键是否存在进行了判定:如果设置了主键,那么会注册 DeleteById 等方法,没有则不注册。最终返回所有将要被注入的 SQL 语句 List
其中,Builder<AbstractMethod> builder就是可以做文章得地方。
一顿操作,最终是返回一个总的 List, 那么可以通过重写 getMethodList 方法,在返回得 List 中 添加上我们自己得方法类即可。不是任意的方法类都可以被添加到这个 List 当中。继续查看,跳入 new Insert(),该方法仅仅做了一个操作:继承了抽象类AbstractMethod。查看其他几个new Update(), new Delete() 操作类发现同样如此因此,我们要实现清表删库功能 clearOneTable, 同样只需要继承抽象类 AbstractMethod 完事。 第一步重写getMethodListRegisterSqlInjector.java
第二步定义自己的SQL方法类DefineSqlInjector.java
第三步定义添加了自定义方法的Mapper类 测试调用 遗留问题目前最新的 mysql-plus 版本提示 AbstractMethod已经被废弃了,虽然依然可以使用,但是有一道横线有点难受
到此这篇关于Mybatisplus详解如何注入自定义的SQL的文章就介绍到这了,更多相关Mybatisplus注入SQL内容请搜索七叶笔记以前的文章或继续浏览下面的相关文章希望大家以后多多支持七叶笔记!