有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在控制台中停止mybatis打印SQL脚本

我正在使用mybatis-3.4.6来执行使用ScriptRunner的sql脚本。它正在将整个脚本打印到控制台。我正在使用slf4j进行日志记录,我在logback.xml中包含了以下几行。但它仍在印刷

<logger name="org.mybatis" level="WARN" />
<logger name="java.sql" level="WARN" />

mybatis之前,我使用了ibatis。它没有像这样打印脚本

如何停止打印脚本


共 (2) 个答案

  1. # 1 楼答案

    对我来说,这似乎是一个System.out。所以我做了以下更改来删除控制台日志。我不认为这是最好的解决方案

    PrintStream tmp = new PrintStream(new OutputStream() {
        @Override
        public void write(int b) throws IOException {
            // do nothing
        }
    });
    PrintStream console = System.out;
    System.setOut(tmp);
    // ScriptRunner call
    System.setOut(console);
    
  2. # 2 楼答案

    我使用ScriptRunner方法解决了这个问题。setLogWriter(空):

    ScriptRunner sr = new ScriptRunner(connection);
    Reader reader = new BufferedReader(new FileReader(scriptFile));
    sr.setLogWriter(null);
    sr.runScript(reader);