提交 d008656a 编写于 作者: J jmxd

调整打印`SQL`语句逻辑

上级 1fc620b8
......@@ -175,9 +175,15 @@ public class BoundSql {
RequestEntity requestEntity = RequestContext.getRequestEntity();
interceptors.forEach(interceptor -> interceptor.preHandle(this, requestEntity));
Supplier<T> newSupplier = () -> {
Object result = supplier.get();
for (SQLInterceptor interceptor : interceptors) {
result = interceptor.postHandle(this, result, requestEntity);
Object result;
try {
result = supplier.get();
for (SQLInterceptor interceptor : interceptors) {
result = interceptor.postHandle(this, result, requestEntity);
}
} catch (Throwable e) {
interceptors.forEach(interceptor -> interceptor.handleException(this, e, requestEntity));
throw e;
}
return (T) result;
};
......
......@@ -16,8 +16,7 @@ import java.util.stream.Collectors;
*/
public class DefaultSqlInterceptor implements SQLInterceptor {
@Override
public void preHandle(BoundSql boundSql, RequestEntity requestEntity) {
private void handleLog(BoundSql boundSql, RequestEntity requestEntity){
Logger logger = LoggerFactory.getLogger(requestEntity == null ? "Unknown" : requestEntity.getMagicScriptContext().getScriptName());
String parameters = Arrays.stream(boundSql.getParameters()).map(it -> {
if (it == null) {
......@@ -34,4 +33,14 @@ public class DefaultSqlInterceptor implements SQLInterceptor {
logger.info("SQL参数:{}", parameters);
}
}
@Override
public Object postHandle(BoundSql boundSql, Object result, RequestEntity requestEntity) {
handleLog(boundSql, requestEntity);
return result;
}
@Override
public void handleException(BoundSql boundSql, Throwable throwable, RequestEntity requestEntity) {
handleLog(boundSql, requestEntity);
}
}
......@@ -31,5 +31,14 @@ public interface SQLInterceptor {
return result;
}
/**
* @since 2.1.0
* @param boundSql SQL信息
* @param throwable 异常信息
* @param requestEntity 请求信息
*/
default void handleException(BoundSql boundSql, Throwable throwable, RequestEntity requestEntity){
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册