1) 在 Mapper 接口中定义相关的 CRUD 方法。
package com.wzy.mapper;import com.baomidou.mybatisplus.mapper.BaseMapper;import com.wzy.pojo.Employee;public interface EmployeeMapper extends BaseMapper<Employee> {//定义方法int deleteAll();}
2) 扩展 AutoSqlInjector inject 方法,实现 Mapper 接口中方法要注入的 SQL
package com.wzy.AutoSqlInjector;import com.baomidou.mybatisplus.entity.TableInfo;import com.baomidou.mybatisplus.mapper.AutoSqlInjector;import org.apache.ibatis.builder.MapperBuilderAssistant;import org.apache.ibatis.mapping.SqlSource;import org.apache.ibatis.session.Configuration;public class MyAutoSqlInjector extends AutoSqlInjector {@Overridepublic void inject(Configuration configuration,MapperBuilderAssistant builderAssistant,Class<?> mapperClass,Class<?> modelClass,TableInfo table) {//将EmployeeMapper中定义的deleteAll,处理对应的MapperStatement对象,加入到configguration对象中//sql语句String sql = "delete from " + table.getTableName();//注入方法名,一定要与EmployeeMapper接口中的方法名一致String method = "deleteAll";//构造SqlSource对象SqlSource sqlSource = languageDriver.createSqlSource(configuration, sql, modelClass);//构造一个删除的MappedStatementthis.addDeleteMappedStatement(mapperClass,method,sqlSource);}}
