需求:

当SQL语句太长的时候(或者数据量太大),如果还让Mybatis打印SQL,会导致日志过于膨胀,而且不利于查看其他错误日志。

问题:

能搜到的都是mybatisplus的,Mybatis自己禁止打印SQL的一个也没有看到。

解决办法

	<settings>
<!--		<setting name="logImpl" value="STDOUT_LOGGING" />-->
<!--		<setting name="logImpl" value="org.apache.ibatis.logging.stdout.StdOutImpl" />-->
		<setting name="logImpl" value="com.aaaa.bbbb.mybatis.NoOpLoggingImpl" />
		<!--开启驼峰命名规则自动转换-->
		<setting name="mapUnderscoreToCamelCase" value="true" />
	</settings>

先把mybatis-config.xml里面的原来的log设定屏蔽掉。

然后新建一个logimpl类,处理掉日志。

import org.apache.ibatis.logging.Log;

/**
 * @Author: 
 * @Date: 2023/9/14 16:16
 * @Description:
 */
public class NoOpLoggingImpl implements Log {

    public NoOpLoggingImpl(String clazz) {
        // 构造方法
    }

    @Override
    public boolean isDebugEnabled() {
        return false;
    }

    @Override
    public boolean isTraceEnabled() {
        return false;
    }

    @Override
    public void error(String s, Throwable e) {
        // 不做任何操作
    }

    @Override
    public void error(String s) {
        // 不做任何操作
    }

    @Override
    public void debug(String s) {
        // 不做任何操作
    }

    @Override
    public void trace(String s) {
        // 不做任何操作
    }

    @Override
    public void warn(String s) {
        // 不做任何操作
    }
}

这样就不会打印SQL了。

我这个接口数据量很大,一直在执行。

可以看到数据入库并未打印SQL语句。

更多推荐