mirror of
https://github.com/alibaba/druid.git
synced 2023-03-04 19:17:16 +00:00
add stat attribute
This commit is contained in:
@@ -29,6 +29,8 @@ import java.util.Map;
|
||||
import com.alibaba.druid.filter.FilterChain;
|
||||
import com.alibaba.druid.filter.FilterChainImpl;
|
||||
import com.alibaba.druid.stat.JdbcSqlStat;
|
||||
import com.alibaba.druid.stat.JdbcStatContext;
|
||||
import com.alibaba.druid.stat.JdbcStatManager;
|
||||
|
||||
/**
|
||||
* @author wenshao<szujobs@hotmail.com>
|
||||
@@ -41,8 +43,11 @@ public class StatementProxyImpl extends WrapperProxyImpl implements StatementPro
|
||||
protected String lastExecuteSql;
|
||||
private long lastExecuteTimeNano;
|
||||
protected JdbcSqlStat sqlStat;
|
||||
protected boolean firstResultSet;
|
||||
|
||||
protected ArrayList<String> batchSqlList;
|
||||
|
||||
protected StatementExecuteType lastExecuteType;
|
||||
|
||||
public StatementProxyImpl(ConnectionProxy connection, Statement statement, long id){
|
||||
super(statement, id);
|
||||
@@ -100,59 +105,74 @@ public class StatementProxyImpl extends WrapperProxyImpl implements StatementPro
|
||||
@Override
|
||||
public boolean execute(String sql) throws SQLException {
|
||||
lastExecuteSql = sql;
|
||||
return createChain().statement_execute(this, sql);
|
||||
lastExecuteType = StatementExecuteType.Execute;
|
||||
|
||||
firstResultSet = createChain().statement_execute(this, sql);
|
||||
return firstResultSet;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean execute(String sql, int autoGeneratedKeys) throws SQLException {
|
||||
lastExecuteSql = sql;
|
||||
return createChain().statement_execute(this, sql, autoGeneratedKeys);
|
||||
lastExecuteType = StatementExecuteType.Execute;
|
||||
firstResultSet = createChain().statement_execute(this, sql, autoGeneratedKeys);
|
||||
return firstResultSet;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean execute(String sql, int[] columnIndexes) throws SQLException {
|
||||
lastExecuteSql = sql;
|
||||
return createChain().statement_execute(this, sql, columnIndexes);
|
||||
lastExecuteType = StatementExecuteType.Execute;
|
||||
firstResultSet = createChain().statement_execute(this, sql, columnIndexes);
|
||||
return firstResultSet;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean execute(String sql, String[] columnNames) throws SQLException {
|
||||
lastExecuteSql = sql;
|
||||
return createChain().statement_execute(this, sql, columnNames);
|
||||
lastExecuteType = StatementExecuteType.Execute;
|
||||
firstResultSet = createChain().statement_execute(this, sql, columnNames);
|
||||
return firstResultSet;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int[] executeBatch() throws SQLException {
|
||||
lastExecuteType = StatementExecuteType.ExecuteBatch;
|
||||
return createChain().statement_executeBatch(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResultSet executeQuery(String sql) throws SQLException {
|
||||
lastExecuteSql = sql;
|
||||
lastExecuteType = StatementExecuteType.ExecuteQuery;
|
||||
return createChain().statement_executeQuery(this, sql);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int executeUpdate(String sql) throws SQLException {
|
||||
lastExecuteSql = sql;
|
||||
lastExecuteType = StatementExecuteType.ExecuteUpdate;
|
||||
return createChain().statement_executeUpdate(this, sql);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int executeUpdate(String sql, int autoGeneratedKeys) throws SQLException {
|
||||
lastExecuteSql = sql;
|
||||
lastExecuteType = StatementExecuteType.ExecuteUpdate;
|
||||
return createChain().statement_executeUpdate(this, sql, autoGeneratedKeys);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int executeUpdate(String sql, int[] columnIndexes) throws SQLException {
|
||||
lastExecuteSql = sql;
|
||||
lastExecuteType = StatementExecuteType.ExecuteUpdate;
|
||||
return createChain().statement_executeUpdate(this, sql, columnIndexes);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int executeUpdate(String sql, String[] columnNames) throws SQLException {
|
||||
lastExecuteSql = sql;
|
||||
lastExecuteType = StatementExecuteType.ExecuteUpdate;
|
||||
return createChain().statement_executeUpdate(this, sql, columnNames);
|
||||
}
|
||||
|
||||
@@ -344,4 +364,12 @@ public class StatementProxyImpl extends WrapperProxyImpl implements StatementPro
|
||||
public void setLastExecuteTimeNano(long lastExecuteTimeNano) {
|
||||
this.lastExecuteTimeNano = lastExecuteTimeNano;
|
||||
}
|
||||
|
||||
public StatementExecuteType getLastExecuteType() {
|
||||
return lastExecuteType;
|
||||
}
|
||||
|
||||
public boolean isFirstResultSet() {
|
||||
return firstResultSet;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user