diff --git a/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/read/AbstractSqlRead.java b/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/read/AbstractSqlRead.java index 9b15600a30639cb59b0a7799c7a38dc8042c7088..fc0ac3e963a49f071487961b319b0e030c7bd747 100644 --- a/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/read/AbstractSqlRead.java +++ b/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/read/AbstractSqlRead.java @@ -37,9 +37,8 @@ public abstract class AbstractSqlRead implements SqlRead { Map result = new HashMap<>(); String sqlCmd = buildQuerySql(); - if (config.getSqlLogEnabled()) { - LOG.info("query sql:{}", sqlCmd.replace("?", "'" + config.getApplicationName() + "'")); - } + // 如果允许,就打印 sql 语句 + logSqlIfEnable(sqlCmd); Connection conn = null; PreparedStatement stmt = null; @@ -51,7 +50,7 @@ public abstract class AbstractSqlRead implements SqlRead { stmt.setFetchSize(SqlReadConstant.FETCH_SIZE_MAX); stmt.setString(1, config.getApplicationName()); ParameterMetaData parameterMetaData = stmt.getParameterMetaData(); - if (parameterMetaData.getParameterCount() == 2){ + if (parameterMetaData.getParameterCount() == 2) { stmt.setBoolean(2, true); } rs = stmt.executeQuery(); @@ -82,6 +81,7 @@ public abstract class AbstractSqlRead implements SqlRead { * 是否可以读取 * chain 默认可以读取 * script 需要判断是否有配置 + * * @return 布尔值 */ public boolean needRead() { @@ -100,4 +100,22 @@ public abstract class AbstractSqlRead implements SqlRead { } return data; } + + private void logSqlIfEnable(String sqlCmd) { + if (!config.getSqlLogEnabled()) { + return; + } + StringBuilder strBuilder = new StringBuilder("query sql: "); + // 如果包含启停字段 + if (config.hasEnableField()) { + String replaceAppName = StrUtil.replaceFirst(sqlCmd, "?", "'" + config.getApplicationName() + "'"); + String executeSql = StrUtil.replaceFirst(replaceAppName, "?", Boolean.TRUE.toString()); + strBuilder.append(executeSql); + } + // 如果不包含启停字段 + else { + strBuilder.append(sqlCmd.replace("?", "'" + config.getApplicationName() + "'")); + } + LOG.info(strBuilder.toString()); + } } diff --git a/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/vo/SQLParserVO.java b/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/vo/SQLParserVO.java index 97fa9184038eb0c7ddae78697e08c7e646b6f10e..535f1856955f41b736333250a9fc3609addb316e 100644 --- a/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/vo/SQLParserVO.java +++ b/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/vo/SQLParserVO.java @@ -303,4 +303,11 @@ public class SQLParserVO { public void setScriptEnableField(String scriptEnableField) { this.scriptEnableField = scriptEnableField; } + + /** + * 是否包含启停字段(chain 和 script) + */ + public boolean hasEnableField() { + return StrUtil.isNotBlank(chainEnableField) || StrUtil.isNotBlank(scriptEnableField); + } }