1) 在 Mapper 接口中定义相关的 CRUD 方法。
    image.jpeg

    1. package com.wzy.mapper;
    2. import com.baomidou.mybatisplus.mapper.BaseMapper;
    3. import com.wzy.pojo.Employee;
    4. public interface EmployeeMapper extends BaseMapper<Employee> {
    5. //定义方法
    6. int deleteAll();
    7. }

    2) 扩展 AutoSqlInjector inject 方法,实现 Mapper 接口中方法要注入的 SQL
    image.jpeg

    1. package com.wzy.AutoSqlInjector;
    2. import com.baomidou.mybatisplus.entity.TableInfo;
    3. import com.baomidou.mybatisplus.mapper.AutoSqlInjector;
    4. import org.apache.ibatis.builder.MapperBuilderAssistant;
    5. import org.apache.ibatis.mapping.SqlSource;
    6. import org.apache.ibatis.session.Configuration;
    7. public class MyAutoSqlInjector extends AutoSqlInjector {
    8. @Override
    9. public void inject(Configuration configuration,
    10. MapperBuilderAssistant builderAssistant,
    11. Class<?> mapperClass,
    12. Class<?> modelClass,
    13. TableInfo table) {
    14. //将EmployeeMapper中定义的deleteAll,处理对应的MapperStatement对象,加入到configguration对象中
    15. //sql语句
    16. String sql = "delete from " + table.getTableName();
    17. //注入方法名,一定要与EmployeeMapper接口中的方法名一致
    18. String method = "deleteAll";
    19. //构造SqlSource对象
    20. SqlSource sqlSource = languageDriver.createSqlSource(configuration, sql, modelClass);
    21. //构造一个删除的MappedStatement
    22. this.addDeleteMappedStatement(mapperClass,method,sqlSource);
    23. }
    24. }