mirror of
https://github.com/alibaba/druid.git
synced 2023-03-04 19:17:16 +00:00
减少PreparedStatementProxyImpl的内存占用
This commit is contained in:
@@ -21,7 +21,6 @@ import java.sql.Savepoint;
|
||||
import java.sql.Types;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.alibaba.druid.filter.FilterChain;
|
||||
import com.alibaba.druid.filter.FilterEventAdapter;
|
||||
@@ -507,15 +506,16 @@ public abstract class LogFilter extends FilterEventAdapter implements LogFilterM
|
||||
return;
|
||||
}
|
||||
|
||||
Map<Integer, JdbcParameter> parameterMap = statement.getParameters();
|
||||
if (parameterMap == null || parameterMap.size() == 0) {
|
||||
int parametersSize = statement.getParametersSize();
|
||||
if (parametersSize == 0) {
|
||||
statementLog("{conn-" + statement.getConnectionProxy().getId() + ", " + stmtId(statement) + "} executed. "
|
||||
+ sql);
|
||||
return;
|
||||
}
|
||||
|
||||
List<Object> parameters = new ArrayList<Object>(parameterMap.size());
|
||||
for (JdbcParameter jdbcParam : parameterMap.values()) {
|
||||
List<Object> parameters = new ArrayList<Object>(parametersSize);
|
||||
for (int i = 0; i < parametersSize; ++i) {
|
||||
JdbcParameter jdbcParam = statement.getParameter(i);
|
||||
parameters.add(jdbcParam.getValue());
|
||||
}
|
||||
|
||||
@@ -737,11 +737,16 @@ public abstract class LogFilter extends FilterEventAdapter implements LogFilterM
|
||||
buf.append(stmtId(statement));
|
||||
buf.append("}");
|
||||
buf.append(" Parameters : [");
|
||||
int parameterIndex = 0;
|
||||
for (JdbcParameter parameter : statement.getParameters().values()) {
|
||||
if (parameterIndex != 0) {
|
||||
|
||||
for (int i = 0, parametersSize = statement.getParametersSize(); i < parametersSize; ++i) {
|
||||
JdbcParameter parameter = statement.getParameter(i);
|
||||
if (i != 0) {
|
||||
buf.append(", ");
|
||||
}
|
||||
if (parameter == null) {
|
||||
continue;
|
||||
}
|
||||
|
||||
int sqlType = parameter.getSqlType();
|
||||
Object value = parameter.getValue();
|
||||
switch (sqlType) {
|
||||
@@ -752,7 +757,6 @@ public abstract class LogFilter extends FilterEventAdapter implements LogFilterM
|
||||
buf.append(String.valueOf(value));
|
||||
break;
|
||||
}
|
||||
parameterIndex++;
|
||||
}
|
||||
buf.append("]");
|
||||
statementLog(buf.toString());
|
||||
@@ -765,14 +769,16 @@ public abstract class LogFilter extends FilterEventAdapter implements LogFilterM
|
||||
buf.append(stmtId(statement));
|
||||
buf.append("}");
|
||||
buf.append(" Types : [");
|
||||
int parameterIndex = 0;
|
||||
for (JdbcParameter parameter : statement.getParameters().values()) {
|
||||
if (parameterIndex != 0) {
|
||||
for (int i = 0, parametersSize = statement.getParametersSize(); i < parametersSize; ++i) {
|
||||
JdbcParameter parameter = statement.getParameter(i);
|
||||
if (i != 0) {
|
||||
buf.append(", ");
|
||||
}
|
||||
if (parameter == null) {
|
||||
continue;
|
||||
}
|
||||
int sqlType = parameter.getSqlType();
|
||||
buf.append(JdbcUtils.getTypeName(sqlType));
|
||||
parameterIndex++;
|
||||
}
|
||||
buf.append("]");
|
||||
statementLog(buf.toString());
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,56 +1,59 @@
|
||||
/*
|
||||
* Copyright 1999-2011 Alibaba Group Holding Ltd.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package com.alibaba.druid.proxy.jdbc;
|
||||
|
||||
import java.sql.Statement;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.alibaba.druid.stat.JdbcSqlStat;
|
||||
|
||||
/**
|
||||
* @author wenshao<szujobs@hotmail.com>
|
||||
*/
|
||||
public interface StatementProxy extends Statement, WrapperProxy {
|
||||
|
||||
ConnectionProxy getConnectionProxy();
|
||||
|
||||
Statement getRawObject();
|
||||
|
||||
List<String> getBatchSqlList();
|
||||
|
||||
String getBatchSql();
|
||||
|
||||
JdbcSqlStat getSqlStat();
|
||||
|
||||
StatementExecuteType getLastExecuteType();
|
||||
|
||||
void setSqlStat(JdbcSqlStat sqlStat);
|
||||
|
||||
String getLastExecuteSql();
|
||||
|
||||
long getLastExecuteStartNano();
|
||||
void setLastExecuteStartNano(long lastExecuteStartNano);
|
||||
void setLastExecuteStartNano();
|
||||
|
||||
long getLastExecuteTimeNano();
|
||||
void setLastExecuteTimeNano(long nano);
|
||||
void setLastExecuteTimeNano();
|
||||
|
||||
Map<Integer, JdbcParameter> getParameters();
|
||||
|
||||
boolean isFirstResultSet();
|
||||
}
|
||||
/*
|
||||
* Copyright 1999-2011 Alibaba Group Holding Ltd.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package com.alibaba.druid.proxy.jdbc;
|
||||
|
||||
import java.sql.Statement;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.alibaba.druid.stat.JdbcSqlStat;
|
||||
|
||||
/**
|
||||
* @author wenshao<szujobs@hotmail.com>
|
||||
*/
|
||||
public interface StatementProxy extends Statement, WrapperProxy {
|
||||
|
||||
ConnectionProxy getConnectionProxy();
|
||||
|
||||
Statement getRawObject();
|
||||
|
||||
List<String> getBatchSqlList();
|
||||
|
||||
String getBatchSql();
|
||||
|
||||
JdbcSqlStat getSqlStat();
|
||||
|
||||
StatementExecuteType getLastExecuteType();
|
||||
|
||||
void setSqlStat(JdbcSqlStat sqlStat);
|
||||
|
||||
String getLastExecuteSql();
|
||||
|
||||
long getLastExecuteStartNano();
|
||||
void setLastExecuteStartNano(long lastExecuteStartNano);
|
||||
void setLastExecuteStartNano();
|
||||
|
||||
long getLastExecuteTimeNano();
|
||||
void setLastExecuteTimeNano(long nano);
|
||||
void setLastExecuteTimeNano();
|
||||
|
||||
Map<Integer, JdbcParameter> getParameters();
|
||||
|
||||
int getParametersSize();
|
||||
JdbcParameter getParameter(int i);
|
||||
|
||||
boolean isFirstResultSet();
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user