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.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
@ -37,6 +36,7 @@ import org.springframework.jdbc.core.namedparam.SqlParameterSourceUtils;
|
||||||
import org.springframework.jdbc.support.JdbcUtils;
|
import org.springframework.jdbc.support.JdbcUtils;
|
||||||
import org.springframework.util.Assert;
|
import org.springframework.util.Assert;
|
||||||
import org.springframework.util.CollectionUtils;
|
import org.springframework.util.CollectionUtils;
|
||||||
|
import org.springframework.util.LinkedCaseInsensitiveMap;
|
||||||
import org.springframework.util.StringUtils;
|
import org.springframework.util.StringUtils;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -268,17 +268,15 @@ public class TableMetaDataContext {
|
||||||
public List<Object> matchInParameterValuesWithInsertColumns(Map<String, ?> inParameters) {
|
public List<Object> matchInParameterValuesWithInsertColumns(Map<String, ?> inParameters) {
|
||||||
List<Object> values = new ArrayList<>(this.tableColumns.size());
|
List<Object> values = new ArrayList<>(this.tableColumns.size());
|
||||||
|
|
||||||
Map<String, Object> caseInsensitiveLookup = new HashMap<>(inParameters.size());
|
LinkedCaseInsensitiveMap<Object> caseInsensitiveLookup = new LinkedCaseInsensitiveMap<>(inParameters.size());
|
||||||
for (Map.Entry<String, ?> entry : inParameters.entrySet()) {
|
caseInsensitiveLookup.putAll(inParameters);
|
||||||
caseInsensitiveLookup.put(entry.getKey().toLowerCase(Locale.ROOT), entry.getValue());
|
|
||||||
}
|
|
||||||
|
|
||||||
for (String column : this.tableColumns) {
|
for (String column : this.tableColumns) {
|
||||||
Object value = inParameters.get(column);
|
Object value = inParameters.get(column);
|
||||||
if (value == null) {
|
if (value == null) {
|
||||||
value = inParameters.get(column.toLowerCase(Locale.ROOT));
|
value = inParameters.get(column.toLowerCase(Locale.ROOT));
|
||||||
if (value == null) {
|
if (value == null) {
|
||||||
value = caseInsensitiveLookup.get(column.toLowerCase(Locale.ROOT));
|
value = caseInsensitiveLookup.get(column);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
values.add(value);
|
values.add(value);
|
||||||
|
|
Loading…
Reference in New Issue