通过mybatis拦截器获取到执行的sql语句,如果我的service层报错,怎么才能让拦截器中的sql语句不保存下来

问题描述:程序记录每一条增,改,更新sql,其实获取的sql语句是在真正执行前通过拼接方式获得的完整的即将执行的sql语句,但是当service报错时,这些语句还是会记录下来,我想问的是怎么能避免这种情况,当service报错时,mybatis拦截器拦截下来的sql语句不记录

可以通过spring提供的aop,不在mybatis的拦截器里面记录sql在aop里面的执行成功后记录sql。sql从mybatis拦截器可以通过线程map传到aop里面。