MyBatis-Plus简单使用——自定义全局操作 (10)

自定义全局操作,就是将我们需要的sql在项目启动的时候就注入到全局中,操作步骤如下:

在Mapper接口中定义我们需要注入的方法;
扩展AutoSqlInjector中的inject方法,实现Mapper中我们自定义方法要注入的sql;
最后,在全局配置中,配置我们自定义的注入器即可;

第一步:mapper中定义方法

public interface UserMapper extends BaseMapper {

    int deleteAll();
}

第二步:重写inject方法

public class MySqlInjector  extends AutoSqlInjector {

    @Override
    public void inject(Configuration configuration, MapperBuilderAssistant builderAssistant, Class mapperClass, Class modelClass, TableInfo table) {
        // 构造sql语句
        String sql = "delete from " + table.getTableName();
        // 构造方法名
        String method = "deleteAll";
        // 构造SqlSource对象
        SqlSource sqlSource = languageDriver.createSqlSource(configuration, sql, modelClass);
        // 构造一个删除的MapperStatement
        this.addDeleteMappedStatement(mapperClass,method,sqlSource);
    }


第三步:注入自定义配置


     
     
     
     
     
     
     
     



测试

ApplicationContext ioc = new ClassPathXmlApplicationContext("applicationContext.xml");

private UserMapper userMapper = ioc.getBean("userMapper",UserMapper.class);

@Test
public void testInject(){
    int rs = userMapper.deleteAll();
}

 

你可能感兴趣的:(MyBatis-Plus)