springboot+mybatis或者mybatisplus打印不带占位符的sql
在正常打印的SQL中,sql都是带有占位符,在遇到参数比较多,并且需要运行sql的时候,需要把参数一个个的去拼接到sql中去,是比较麻烦的
解决办法(只是一种解决办法,不是说最优的)
加mybatis拦截器
拦截器代码:
import java.text.DateFormat;
import java.util.Date;
import java.util.List;
import java.util.Locale;
import java.util.Properties;
import java.util.regex.Matcher;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.executor.Executor;
import org.apache.ibatis.mapping.BoundSql;
import org.apache.ibatis.mapping.MappedStatement;
import org.apache.ibatis.mapping.ParameterMapping;
import org.apache.ibatis.plugin.*;
import org.apache.ibatis.reflection.MetaObject;
import org.apache.ibatis.session.Configuration;
import org.apache.ibatis.session.ResultHandler;
import org.apache.ibatis.session.RowBounds;
import org.apache.ibatis.type.TypeHandlerRegistry;
/**
* MyBatis拦截器打印不带问号的完整sql语句
* @Classname MybatisInterceptor
* @Description TODO
* @Date 2020/11/17 14:19
* @Created by 王大宝
*/
@Intercepts({
@Signature(type = Executor.class, method = "update", args = {
MappedStatement.class,
Object.class}),
@Signature(type = Executor.class, method = "query", args = {
MappedStatement.class,
Object