springboot ,PageHelper,mybaits拦截器整合

mybatis拦截器

@Intercepts({
        @Signature(type = Executor.class, method = "query",
            args = {MappedStatement.class, Object.class, RowBounds.class, ResultHandler.class})

})
public class SelectInterceptor  implements Interceptor {
//     方法用来对拦截的sql进行具体的操作
    @Override
    public Object intercept(Invocation invocation) throws Throwable {

//        Object[] args = invocation.getArgs();
//        MappedStatement ms = (MappedStatement) args[0];
//        Object parameterObject = args[1];
//        // id为执行的mapper方法的全路径名,如com.mapper.UserMapper
//        String id = ms.getId();
//        // sql语句类型 select、delete、insert、update
//        String sqlCommandType = ms.getSqlCommandType().toString();
//        BoundSql boundSql = ms.getBoundSql(parameterObject);
//        String origSql = boundSql.getSql();
//        System.out.println("-----原始sql------\n"+origSql+"\n-------------");

        return invocation.proceed();
    }

    @Override
    public Object plugin(Object target) {
        if (target instanceof Executor) {
            return Plugin.wrap(target, this);
        }
        return target;
    }

    @Override
    public void setProperties(Properties properties) {
        System.out.println("-------------------");
    }
}

mybatis配置文件

@Configuration
@AutoConfigureAfter(PageHelperAutoConfiguration.class)
public class MyBatisConfig {
    @Autowired
    private List<SqlSessionFactory> sqlSessionFactoryList;

    @PostConstruct
    public void addMySqlInterceptor() {
        SelectInterceptor interceptor = new SelectInterceptor();
        for (SqlSessionFactory sqlSessionFactory : sqlSessionFactoryList) {
            sqlSessionFactory.getConfiguration().addInterceptor(interceptor);

        }
    }
}

添加spring.factories 文件

在resource目录下新建META-INF目录,然后添加spring.factories文件

# Auto Configure
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.github.pagehelper.autoconfigure.PageHelperAutoConfiguration,\
com.ahycg.annotation.MyBatisConfig
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值