mirror of
https://github.com/CarmJos/EasySQL.git
synced 2024-09-19 21:35:47 +00:00
[0.3.14] 版本修复
- `[F]` 修复上一版本中 SQLDebugHandler 的处理出现空指针异常。
This commit is contained in:
parent
20ac8f3908
commit
6cd080210f
@ -8,7 +8,7 @@ import org.jetbrains.annotations.NotNull;
|
|||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -36,6 +36,18 @@ public interface SQLDebugHandler {
|
|||||||
*/
|
*/
|
||||||
void afterQuery(@NotNull SQLQuery query, long executeTime, long closeTime);
|
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<String> paramsString = new ArrayList<>();
|
||||||
|
for (Object param : params) {
|
||||||
|
if (param == null) paramsString.add("NULL");
|
||||||
|
else paramsString.add(param.toString());
|
||||||
|
}
|
||||||
|
return String.join(", ", paramsString);
|
||||||
|
}
|
||||||
|
|
||||||
@SuppressWarnings("DuplicatedCode")
|
@SuppressWarnings("DuplicatedCode")
|
||||||
static SQLDebugHandler defaultHandler(Logger logger) {
|
static SQLDebugHandler defaultHandler(Logger logger) {
|
||||||
return new SQLDebugHandler() {
|
return new SQLDebugHandler() {
|
||||||
@ -55,18 +67,12 @@ public interface SQLDebugHandler {
|
|||||||
}
|
}
|
||||||
if (params.size() == 1) {
|
if (params.size() == 1) {
|
||||||
Object[] param = params.get(0);
|
Object[] param = params.get(0);
|
||||||
if (param != null) {
|
logger.info("┣# SQLParams({}): {}", param.length, parseParams(param));
|
||||||
logger.info("┣# SQLParams({}): {}", param.length, Arrays.stream(param).map(Object::toString).reduce((a, b) -> a + ", " + b).orElse(""));
|
|
||||||
}
|
|
||||||
} else if (params.size() > 1) {
|
} else if (params.size() > 1) {
|
||||||
logger.info("┣# SQLParams: ");
|
logger.info("┣# SQLParams: ");
|
||||||
int i = 0;
|
int i = 0;
|
||||||
for (Object[] param : params) {
|
for (Object[] param : params) {
|
||||||
if (param != null) {
|
logger.info("┃ [{}] {}", ++i, parseParams(param));
|
||||||
logger.info("┃ [{}] {}", ++i, Arrays.stream(param).map(Object::toString).reduce((a, b) -> a + ", " + b).orElse(""));
|
|
||||||
} else {
|
|
||||||
logger.info("┃ [{}] {}", ++i, "<#NULL>");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
logger.info("┣# createTime: {}", action.getCreateTime());
|
logger.info("┣# createTime: {}", action.getCreateTime());
|
||||||
|
@ -69,7 +69,11 @@ public abstract class AbstractSQLAction<T> implements SQLAction<T> {
|
|||||||
|
|
||||||
protected void debugMessage(List<Object[]> params) {
|
protected void debugMessage(List<Object[]> params) {
|
||||||
if (getManager().isDebugMode()) {
|
if (getManager().isDebugMode()) {
|
||||||
getManager().getDebugHandler().beforeExecute(this, params);
|
try {
|
||||||
|
getManager().getDebugHandler().beforeExecute(this, params);
|
||||||
|
} catch (Exception exception) {
|
||||||
|
exception.printStackTrace();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -72,7 +72,11 @@ public class SQLQueryImpl implements SQLQuery {
|
|||||||
if (getConnection() != null && !getConnection().isClosed()) getConnection().close();
|
if (getConnection() != null && !getConnection().isClosed()) getConnection().close();
|
||||||
|
|
||||||
if (getManager().isDebugMode()) {
|
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());
|
getManager().getActiveQuery().remove(getAction().getActionUUID());
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
|
Loading…
Reference in New Issue
Block a user