From 1f45ea28ee1833a59a211c54c2d2e17a60978e3c Mon Sep 17 00:00:00 2001 From: wenshao Date: Sat, 8 Jun 2013 12:14:22 +0800 Subject: [PATCH] decrease JdbcParameter memory used --- .../jdbc/PreparedStatementProxyImpl.java | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) 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 91e71e1809..7b7af74ab9 100644 --- a/src/main/java/com/alibaba/druid/proxy/jdbc/PreparedStatementProxyImpl.java +++ b/src/main/java/com/alibaba/druid/proxy/jdbc/PreparedStatementProxyImpl.java @@ -656,19 +656,35 @@ public class PreparedStatementProxyImpl extends StatementProxyImpl implements Pr return new JdbcParameterTimestamp(x); } - private JdbcParameter createParameter(Object x, int targetSqlType, int scaleOrLength) { - return new JdbcParameterImpl(targetSqlType, x, -1, null, scaleOrLength); + private JdbcParameter createParameter(Object x, int sqlType, int scaleOrLength) { + if (x == null) { + return JdbcParameterNull.valueOf(sqlType); + } + + return new JdbcParameterImpl(sqlType, x, -1, null, scaleOrLength); } private JdbcParameter createParameter(int sqlType, Object value, long length) { + if (value == null) { + return JdbcParameterNull.valueOf(sqlType); + } + return new JdbcParameterImpl(sqlType, value, length); } private JdbcParameter createParameter(int sqlType, Object value) { + if (value == null) { + return JdbcParameterNull.valueOf(sqlType); + } + return new JdbcParameterImpl(sqlType, value); } public JdbcParameter createParameter(int sqlType, Object value, Calendar calendar) { + if (value == null) { + return JdbcParameterNull.valueOf(sqlType); + } + return new JdbcParameterImpl(sqlType, value, calendar); } }