This commit is contained in:
温少
2012-03-20 06:36:07 +08:00
parent b7be5a659d
commit 1e8e04da88
4 changed files with 25 additions and 9 deletions
@@ -57,7 +57,6 @@ public class StatFilter extends FilterEventAdapter implements StatFilterMBean {
private final static Log LOG = LogFactory.getLog(StatFilter.class);
public final static String ATTR_SQL = "stat.sql";
public final static String ATTR_UPDATE_COUNT = "stat.updteCount";
public final static String ATTR_TRANSACTION = "stat.tx";
@@ -228,14 +227,14 @@ public class StatFilter extends FilterEventAdapter implements StatFilterMBean {
dataSourceStat.getStatementStat().incrementPrepareCallCount();
JdbcSqlStat sqlStat = createSqlStat(statement, statement.getSql());
statement.getAttributes().put(ATTR_SQL, sqlStat);
statement.setSqlStat(sqlStat);
}
@Override
public void statementPrepareAfter(PreparedStatementProxy statement) {
dataSourceStat.getStatementStat().incrementPrepareCounter();
JdbcSqlStat sqlStat = createSqlStat(statement, statement.getSql());
statement.getAttributes().put(ATTR_SQL, sqlStat);
statement.setSqlStat(sqlStat);
}
@Override
@@ -283,7 +282,7 @@ public class StatFilter extends FilterEventAdapter implements StatFilterMBean {
JdbcSqlStat sqlStat = getSqlStat(statement);
if (sqlStat == null) {
sqlStat = createSqlStat(statement, sql);
statement.getAttributes().put(ATTR_SQL, sqlStat);
statement.setSqlStat(sqlStat);
}
if (sqlStat != null) {
@@ -322,7 +321,7 @@ public class StatFilter extends FilterEventAdapter implements StatFilterMBean {
JdbcSqlStat sqlStat = getSqlStat(statement);
if (sqlStat == null) {
sqlStat = createSqlStat(statement, sql);
statement.getAttributes().put(ATTR_SQL, sqlStat);
statement.setSqlStat(sqlStat);
}
JdbcStatContext statContext = JdbcStatManager.getInstance().getStatContext();
@@ -671,7 +670,7 @@ public class StatFilter extends FilterEventAdapter implements StatFilterMBean {
return null;
}
return (JdbcSqlStat) statement.getAttributes().get(ATTR_SQL);
return statement.getSqlStat();
}
public JdbcSqlStat getSqlCounter(String sql) {
@@ -19,6 +19,8 @@ import java.sql.Statement;
import java.util.List;
import java.util.Map;
import com.alibaba.druid.stat.JdbcSqlStat;
/**
* @author wenshao<szujobs@hotmail.com>
*/
@@ -31,6 +33,10 @@ public interface StatementProxy extends Statement, WrapperProxy {
List<String> getBatchSqlList();
String getBatchSql();
JdbcSqlStat getSqlStat();
void setSqlStat(JdbcSqlStat sqlStat);
String getLastExecuteSql();
@@ -28,6 +28,7 @@ import java.util.Map;
import com.alibaba.druid.filter.FilterChain;
import com.alibaba.druid.filter.FilterChainImpl;
import com.alibaba.druid.stat.JdbcSqlStat;
/**
* @author wenshao<szujobs@hotmail.com>
@@ -43,6 +44,7 @@ public class StatementProxyImpl extends WrapperProxyImpl implements StatementPro
protected long lastExecuteCompleteTime;
protected long lastExecuteCompleteNano;
protected String lastExecuteSql;
protected JdbcSqlStat sqlStat;
protected ArrayList<String> batchSqlList;
@@ -316,13 +318,13 @@ public class StatementProxyImpl extends WrapperProxyImpl implements StatementPro
public boolean isCloseOnCompletion() throws SQLException {
throw new SQLFeatureNotSupportedException();
}
@SuppressWarnings("unchecked")
public <T> T unwrap(Class<T> iface) throws SQLException {
if (iface == Statement.class) {
return (T) statement;
}
return super.unwrap(iface);
}
@@ -330,4 +332,13 @@ public class StatementProxyImpl extends WrapperProxyImpl implements StatementPro
public Map<Integer, JdbcParameter> getParameters() {
return Collections.emptyMap();
}
public JdbcSqlStat getSqlStat() {
return sqlStat;
}
public void setSqlStat(JdbcSqlStat sqlStat) {
this.sqlStat = sqlStat;
}
}