Mybatis-plus使用SqlInjector注入SQl

时间:2025-04-03 16:36:09

1、通过ISqlInjector接口找到AbstractSqlInjector抽象实现类,再找到DefaultSqlInjector类,它是mybatis-plus的SQL默认注入器,如果项目使用的是逻辑删除,那么可能配置的是另外一个LogicSqlInjector,我们项目使用的是LogicSqlInjector。发现里面有一个ListgetMethodList()方法,返回一个集合,集合里面的每一个AbstractMethod就是对Mybatis-plus对Mybatis进行扩展的Sql方法。

2、本次我们想扩展的是一个能够根据id查询对象,不论对象是否已经被删除的方法findById(Integerid)因此,我们模仿LogicSelectById编写一个类继承AbstractMethod

3、我们继承的Mybatis-plus默认接口BaseMapper中没有我们要使用的findById方法,所以我们编写一个接口MyBaseMapper,去继承BaseMapper接口,再将我们业务的Mapper去继承MyBaseMapper,这样我们的业务Mapper就有了findById方法了

4、为了将我们创建的FindById注入到Mybatis-plus中,我们编写一个类继承LogicSqlInjector,重写它的getMethodList()方法,将我们的FindById添加进去

5、再SpringIOC中配置我们创建的Sql注入器,使之生效