Refactor parameter matching to use LinkedCaseInsensitiveMap for improved efficiency
Signed-off-by: belljun3395 <195850@jnu.ac.kr>
This commit is contained in:
parent
11892fb14b
commit
cdb149bc3e
|
@ -18,7 +18,6 @@ package org.springframework.jdbc.core.metadata;
|
|||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
|
@ -37,6 +36,7 @@ import org.springframework.jdbc.core.namedparam.SqlParameterSourceUtils;
|
|||
import org.springframework.jdbc.support.JdbcUtils;
|
||||
import org.springframework.util.Assert;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
import org.springframework.util.LinkedCaseInsensitiveMap;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
/**
|
||||
|
@ -268,17 +268,15 @@ public class TableMetaDataContext {
|
|||
public List<Object> matchInParameterValuesWithInsertColumns(Map<String, ?> inParameters) {
|
||||
List<Object> values = new ArrayList<>(this.tableColumns.size());
|
||||
|
||||
Map<String, Object> caseInsensitiveLookup = new HashMap<>(inParameters.size());
|
||||
for (Map.Entry<String, ?> entry : inParameters.entrySet()) {
|
||||
caseInsensitiveLookup.put(entry.getKey().toLowerCase(Locale.ROOT), entry.getValue());
|
||||
}
|
||||
LinkedCaseInsensitiveMap<Object> caseInsensitiveLookup = new LinkedCaseInsensitiveMap<>(inParameters.size());
|
||||
caseInsensitiveLookup.putAll(inParameters);
|
||||
|
||||
for (String column : this.tableColumns) {
|
||||
Object value = inParameters.get(column);
|
||||
if (value == null) {
|
||||
value = inParameters.get(column.toLowerCase(Locale.ROOT));
|
||||
if (value == null) {
|
||||
value = caseInsensitiveLookup.get(column.toLowerCase(Locale.ROOT));
|
||||
value = caseInsensitiveLookup.get(column);
|
||||
}
|
||||
}
|
||||
values.add(value);
|
||||
|
|
Loading…
Reference in New Issue