diff --git a/api/src/main/java/cc/carm/lib/easysql/api/function/SQLDebugHandler.java b/api/src/main/java/cc/carm/lib/easysql/api/function/SQLDebugHandler.java index d3d2600..65ea25f 100644 --- a/api/src/main/java/cc/carm/lib/easysql/api/function/SQLDebugHandler.java +++ b/api/src/main/java/cc/carm/lib/easysql/api/function/SQLDebugHandler.java @@ -8,7 +8,7 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.slf4j.Logger; -import java.util.Arrays; +import java.util.ArrayList; import java.util.List; /** @@ -36,6 +36,18 @@ public interface SQLDebugHandler { */ void afterQuery(@NotNull SQLQuery query, long executeTime, long closeTime); + default String parseParams(@Nullable Object[] params) { + if (params == null) return "<#NULL>"; + else if (params.length == 0) return "<#EMPTY>"; + + List paramsString = new ArrayList<>(); + for (Object param : params) { + if (param == null) paramsString.add("NULL"); + else paramsString.add(param.toString()); + } + return String.join(", ", paramsString); + } + @SuppressWarnings("DuplicatedCode") static SQLDebugHandler defaultHandler(Logger logger) { return new SQLDebugHandler() { @@ -55,18 +67,12 @@ public interface SQLDebugHandler { } if (params.size() == 1) { Object[] param = params.get(0); - if (param != null) { - logger.info("┣# SQLParams({}): {}", param.length, Arrays.stream(param).map(Object::toString).reduce((a, b) -> a + ", " + b).orElse("")); - } + logger.info("┣# SQLParams({}): {}", param.length, parseParams(param)); } else if (params.size() > 1) { logger.info("┣# SQLParams: "); int i = 0; for (Object[] param : params) { - if (param != null) { - logger.info("┃ [{}] {}", ++i, Arrays.stream(param).map(Object::toString).reduce((a, b) -> a + ", " + b).orElse("")); - } else { - logger.info("┃ [{}] {}", ++i, "<#NULL>"); - } + logger.info("┃ [{}] {}", ++i, parseParams(param)); } } logger.info("┣# createTime: {}", action.getCreateTime()); diff --git a/impl/src/main/java/cc/carm/lib/easysql/action/AbstractSQLAction.java b/impl/src/main/java/cc/carm/lib/easysql/action/AbstractSQLAction.java index b39eff2..1c7fe64 100644 --- a/impl/src/main/java/cc/carm/lib/easysql/action/AbstractSQLAction.java +++ b/impl/src/main/java/cc/carm/lib/easysql/action/AbstractSQLAction.java @@ -69,7 +69,11 @@ public abstract class AbstractSQLAction implements SQLAction { protected void debugMessage(List params) { if (getManager().isDebugMode()) { - getManager().getDebugHandler().beforeExecute(this, params); + try { + getManager().getDebugHandler().beforeExecute(this, params); + } catch (Exception exception) { + exception.printStackTrace(); + } } } diff --git a/impl/src/main/java/cc/carm/lib/easysql/query/SQLQueryImpl.java b/impl/src/main/java/cc/carm/lib/easysql/query/SQLQueryImpl.java index 26a7887..ae9a8b5 100644 --- a/impl/src/main/java/cc/carm/lib/easysql/query/SQLQueryImpl.java +++ b/impl/src/main/java/cc/carm/lib/easysql/query/SQLQueryImpl.java @@ -72,7 +72,11 @@ public class SQLQueryImpl implements SQLQuery { if (getConnection() != null && !getConnection().isClosed()) getConnection().close(); if (getManager().isDebugMode()) { - getManager().getDebugHandler().afterQuery(this, getExecuteTime(), System.currentTimeMillis()); + try { + getManager().getDebugHandler().afterQuery(this, getExecuteTime(), System.currentTimeMillis()); + } catch (Exception ex) { + ex.printStackTrace(); + } } getManager().getActiveQuery().remove(getAction().getActionUUID()); } catch (SQLException e) {