diff --git a/src/main/java/com/alibaba/druid/proxy/jdbc/PreparedStatementProxyImpl.java b/src/main/java/com/alibaba/druid/proxy/jdbc/PreparedStatementProxyImpl.java index 3461b5cd2f..e2fbb7ec55 100644 --- a/src/main/java/com/alibaba/druid/proxy/jdbc/PreparedStatementProxyImpl.java +++ b/src/main/java/com/alibaba/druid/proxy/jdbc/PreparedStatementProxyImpl.java @@ -86,7 +86,11 @@ public class PreparedStatementProxyImpl extends StatementProxyImpl implements Pr @Override public boolean execute() throws SQLException { updateCount = null; + lastExecuteSql = sql; lastExecuteType = StatementExecuteType.Execute; + lastExecuteStartNano = -1L; + lastExecuteTimeNano = -1L; + firstResultSet = createChain().preparedStatement_execute(this); return firstResultSet; } @@ -94,15 +98,26 @@ public class PreparedStatementProxyImpl extends StatementProxyImpl implements Pr @Override public ResultSet executeQuery() throws SQLException { firstResultSet = true; + updateCount = null; + lastExecuteSql = sql; lastExecuteType = StatementExecuteType.ExecuteQuery; + lastExecuteStartNano = -1L; + lastExecuteTimeNano = -1L; + return createChain().preparedStatement_executeQuery(this); } @Override public int executeUpdate() throws SQLException { firstResultSet = false; + + updateCount = null; + lastExecuteSql = sql; lastExecuteType = StatementExecuteType.ExecuteUpdate; + lastExecuteStartNano = -1L; + lastExecuteTimeNano = -1L; + updateCount = createChain().preparedStatement_executeUpdate(this); return updateCount; } diff --git a/src/main/java/com/alibaba/druid/proxy/jdbc/StatementProxyImpl.java b/src/main/java/com/alibaba/druid/proxy/jdbc/StatementProxyImpl.java index d97c2d8aa6..9be747d2fa 100644 --- a/src/main/java/com/alibaba/druid/proxy/jdbc/StatementProxyImpl.java +++ b/src/main/java/com/alibaba/druid/proxy/jdbc/StatementProxyImpl.java @@ -39,8 +39,8 @@ public class StatementProxyImpl extends WrapperProxyImpl implements StatementPro private final Statement statement; protected String lastExecuteSql; - private long lastExecuteStartNano; - private long lastExecuteTimeNano; + protected long lastExecuteStartNano; + protected long lastExecuteTimeNano; protected JdbcSqlStat sqlStat; protected boolean firstResultSet; @@ -111,7 +111,7 @@ public class StatementProxyImpl extends WrapperProxyImpl implements StatementPro lastExecuteType = StatementExecuteType.Execute; lastExecuteStartNano = -1L; lastExecuteTimeNano = -1L; - + firstResultSet = createChain().statement_execute(this, sql); return firstResultSet; } @@ -123,7 +123,7 @@ public class StatementProxyImpl extends WrapperProxyImpl implements StatementPro lastExecuteType = StatementExecuteType.Execute; lastExecuteStartNano = -1L; lastExecuteTimeNano = -1L; - + firstResultSet = createChain().statement_execute(this, sql, autoGeneratedKeys); return firstResultSet; } @@ -135,7 +135,7 @@ public class StatementProxyImpl extends WrapperProxyImpl implements StatementPro lastExecuteType = StatementExecuteType.Execute; lastExecuteStartNano = -1L; lastExecuteTimeNano = -1L; - + firstResultSet = createChain().statement_execute(this, sql, columnIndexes); return firstResultSet; } @@ -147,7 +147,7 @@ public class StatementProxyImpl extends WrapperProxyImpl implements StatementPro lastExecuteType = StatementExecuteType.Execute; lastExecuteStartNano = -1L; lastExecuteTimeNano = -1L; - + firstResultSet = createChain().statement_execute(this, sql, columnNames); return firstResultSet; } @@ -158,7 +158,7 @@ public class StatementProxyImpl extends WrapperProxyImpl implements StatementPro lastExecuteType = StatementExecuteType.ExecuteBatch; lastExecuteStartNano = -1L; lastExecuteTimeNano = -1L; - + int[] updateCounts = createChain().statement_executeBatch(this); if (updateCounts != null && updateCounts.length == 1) { @@ -176,7 +176,7 @@ public class StatementProxyImpl extends WrapperProxyImpl implements StatementPro lastExecuteType = StatementExecuteType.ExecuteQuery; lastExecuteStartNano = -1L; lastExecuteTimeNano = -1L; - + return createChain().statement_executeQuery(this, sql); } @@ -187,7 +187,7 @@ public class StatementProxyImpl extends WrapperProxyImpl implements StatementPro lastExecuteType = StatementExecuteType.ExecuteUpdate; lastExecuteStartNano = -1L; lastExecuteTimeNano = -1L; - + updateCount = createChain().statement_executeUpdate(this, sql); return updateCount; } @@ -199,7 +199,7 @@ public class StatementProxyImpl extends WrapperProxyImpl implements StatementPro lastExecuteType = StatementExecuteType.ExecuteUpdate; lastExecuteStartNano = -1L; lastExecuteTimeNano = -1L; - + updateCount = createChain().statement_executeUpdate(this, sql, autoGeneratedKeys); return updateCount; } @@ -211,7 +211,7 @@ public class StatementProxyImpl extends WrapperProxyImpl implements StatementPro lastExecuteType = StatementExecuteType.ExecuteUpdate; lastExecuteStartNano = -1L; lastExecuteTimeNano = -1L; - + updateCount = createChain().statement_executeUpdate(this, sql, columnIndexes); return updateCount; } @@ -223,7 +223,7 @@ public class StatementProxyImpl extends WrapperProxyImpl implements StatementPro lastExecuteType = StatementExecuteType.ExecuteUpdate; lastExecuteStartNano = -1L; lastExecuteTimeNano = -1L; - + updateCount = createChain().statement_executeUpdate(this, sql, columnNames); return updateCount; } @@ -422,7 +422,7 @@ public class StatementProxyImpl extends WrapperProxyImpl implements StatementPro public void setLastExecuteTimeNano(long lastExecuteTimeNano) { this.lastExecuteTimeNano = lastExecuteTimeNano; } - + public void setLastExecuteTimeNano() { if (this.lastExecuteTimeNano <= 0 && this.lastExecuteStartNano > 0) { this.lastExecuteTimeNano = System.nanoTime() - this.lastExecuteStartNano;