需求:
当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语句。