提交 62062441 编写于 作者: L lgcareer

add LoggableStatement which can be used to get the query sql

上级 584ec70f
...@@ -25,6 +25,7 @@ import cn.escheduler.common.enums.UdfType; ...@@ -25,6 +25,7 @@ import cn.escheduler.common.enums.UdfType;
import cn.escheduler.common.job.db.*; import cn.escheduler.common.job.db.*;
import cn.escheduler.common.process.Property; import cn.escheduler.common.process.Property;
import cn.escheduler.common.task.AbstractParameters; import cn.escheduler.common.task.AbstractParameters;
import cn.escheduler.common.task.sql.LoggableStatement;
import cn.escheduler.common.task.sql.SqlBinds; import cn.escheduler.common.task.sql.SqlBinds;
import cn.escheduler.common.task.sql.SqlParameters; import cn.escheduler.common.task.sql.SqlParameters;
import cn.escheduler.common.task.sql.SqlType; import cn.escheduler.common.task.sql.SqlType;
...@@ -329,7 +330,7 @@ public class SqlTask extends AbstractTask { ...@@ -329,7 +330,7 @@ public class SqlTask extends AbstractTask {
} }
private PreparedStatement prepareStatementAndBind(Connection connection, SqlBinds sqlBinds) throws Exception { private PreparedStatement prepareStatementAndBind(Connection connection, SqlBinds sqlBinds) throws Exception {
PreparedStatement stmt = connection.prepareStatement(sqlBinds.getSql()); PreparedStatement stmt = new LoggableStatement(connection,sqlBinds.getSql());
if(taskProps.getTaskTimeoutStrategy() == TaskTimeoutStrategy.FAILED || taskProps.getTaskTimeoutStrategy() == TaskTimeoutStrategy.WARNFAILED){ if(taskProps.getTaskTimeoutStrategy() == TaskTimeoutStrategy.FAILED || taskProps.getTaskTimeoutStrategy() == TaskTimeoutStrategy.WARNFAILED){
stmt.setQueryTimeout(taskProps.getTaskTimeout()); stmt.setQueryTimeout(taskProps.getTaskTimeout());
} }
...@@ -340,7 +341,8 @@ public class SqlTask extends AbstractTask { ...@@ -340,7 +341,8 @@ public class SqlTask extends AbstractTask {
ParameterUtils.setInParameter(key,stmt,prop.getType(),prop.getValue()); ParameterUtils.setInParameter(key,stmt,prop.getType(),prop.getValue());
} }
} }
logger.info("prepare statement replace sql:{}",stmt.toString()); logger.info("prepare statement replace sql:{}",((LoggableStatement)stmt).getQueryString());
return stmt; return stmt;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册