提交 32b689a9 编写于 作者: I igor-suhorukov 提交者: Juergen Hoeller

use StringBuilder for complex string concatenation

上级 407ecf73
...@@ -634,7 +634,7 @@ public abstract class AbstractNestablePropertyAccessor extends AbstractPropertyA ...@@ -634,7 +634,7 @@ public abstract class AbstractNestablePropertyAccessor extends AbstractPropertyA
"property path '" + propertyName + "': returned null"); "property path '" + propertyName + "': returned null");
} }
} }
String indexedPropertyName = tokens.actualName; StringBuilder indexedPropertyName = new StringBuilder(tokens.actualName);
// apply indexes and map keys // apply indexes and map keys
for (int i = 0; i < tokens.keys.length; i++) { for (int i = 0; i < tokens.keys.length; i++) {
String key = tokens.keys[i]; String key = tokens.keys[i];
...@@ -645,13 +645,13 @@ public abstract class AbstractNestablePropertyAccessor extends AbstractPropertyA ...@@ -645,13 +645,13 @@ public abstract class AbstractNestablePropertyAccessor extends AbstractPropertyA
} }
else if (value.getClass().isArray()) { else if (value.getClass().isArray()) {
int index = Integer.parseInt(key); int index = Integer.parseInt(key);
value = growArrayIfNecessary(value, index, indexedPropertyName); value = growArrayIfNecessary(value, index, indexedPropertyName.toString());
value = Array.get(value, index); value = Array.get(value, index);
} }
else if (value instanceof List) { else if (value instanceof List) {
int index = Integer.parseInt(key); int index = Integer.parseInt(key);
List<Object> list = (List<Object>) value; List<Object> list = (List<Object>) value;
growCollectionIfNecessary(list, index, indexedPropertyName, ph, i + 1); growCollectionIfNecessary(list, index, indexedPropertyName.toString(), ph, i + 1);
value = list.get(index); value = list.get(index);
} }
else if (value instanceof Set) { else if (value instanceof Set) {
...@@ -686,7 +686,7 @@ public abstract class AbstractNestablePropertyAccessor extends AbstractPropertyA ...@@ -686,7 +686,7 @@ public abstract class AbstractNestablePropertyAccessor extends AbstractPropertyA
"Property referenced in indexed property path '" + propertyName + "Property referenced in indexed property path '" + propertyName +
"' is neither an array nor a List nor a Set nor a Map; returned value was [" + value + "]"); "' is neither an array nor a List nor a Set nor a Map; returned value was [" + value + "]");
} }
indexedPropertyName += PROPERTY_KEY_PREFIX + key + PROPERTY_KEY_SUFFIX; indexedPropertyName.append(PROPERTY_KEY_PREFIX).append(key).append(PROPERTY_KEY_SUFFIX);
} }
} }
return value; return value;
......
...@@ -618,7 +618,7 @@ public class CallMetaDataContext { ...@@ -618,7 +618,7 @@ public class CallMetaDataContext {
public String createCallString() { public String createCallString() {
Assert.state(this.metaDataProvider != null, "No CallMetaDataProvider available"); Assert.state(this.metaDataProvider != null, "No CallMetaDataProvider available");
String callString; StringBuilder callString;
int parameterCount = 0; int parameterCount = 0;
String catalogNameToUse; String catalogNameToUse;
String schemaNameToUse; String schemaNameToUse;
...@@ -637,33 +637,33 @@ public class CallMetaDataContext { ...@@ -637,33 +637,33 @@ public class CallMetaDataContext {
String procedureNameToUse = this.metaDataProvider.procedureNameToUse(getProcedureName()); String procedureNameToUse = this.metaDataProvider.procedureNameToUse(getProcedureName());
if (isFunction() || isReturnValueRequired()) { if (isFunction() || isReturnValueRequired()) {
callString = "{? = call " + callString = new StringBuilder().append("{? = call ").
(StringUtils.hasLength(catalogNameToUse) ? catalogNameToUse + "." : "") + append(StringUtils.hasLength(catalogNameToUse) ? catalogNameToUse + "." : "").
(StringUtils.hasLength(schemaNameToUse) ? schemaNameToUse + "." : "") + append(StringUtils.hasLength(schemaNameToUse) ? schemaNameToUse + "." : "").
procedureNameToUse + "("; append(procedureNameToUse).append("(");
parameterCount = -1; parameterCount = -1;
} }
else { else {
callString = "{call " + callString = new StringBuilder().append("{call ").
(StringUtils.hasLength(catalogNameToUse) ? catalogNameToUse + "." : "") + append(StringUtils.hasLength(catalogNameToUse) ? catalogNameToUse + "." : "").
(StringUtils.hasLength(schemaNameToUse) ? schemaNameToUse + "." : "") + append(StringUtils.hasLength(schemaNameToUse) ? schemaNameToUse + "." : "").
procedureNameToUse + "("; append(procedureNameToUse).append("(");
} }
for (SqlParameter parameter : this.callParameters) { for (SqlParameter parameter : this.callParameters) {
if (!(parameter.isResultsParameter())) { if (!(parameter.isResultsParameter())) {
if (parameterCount > 0) { if (parameterCount > 0) {
callString += ", "; callString.append(", ");
} }
if (parameterCount >= 0) { if (parameterCount >= 0) {
callString += createParameterBinding(parameter); callString.append(createParameterBinding(parameter));
} }
parameterCount++; parameterCount++;
} }
} }
callString += ")}"; callString.append(")}");
return callString; return callString.toString();
} }
/** /**
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册