Skip to content

Commit 45fbebc

Browse files
committed
Moved the method to SqlSourceBuilder and removed trim() call
1 parent 2c5a986 commit 45fbebc

File tree

5 files changed

+21
-38
lines changed

5 files changed

+21
-38
lines changed

src/main/java/org/apache/ibatis/builder/SqlSourceBuilder.java

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,11 @@
1818
import java.util.ArrayList;
1919
import java.util.List;
2020
import java.util.Map;
21+
import java.util.StringTokenizer;
2122

2223
import org.apache.ibatis.mapping.ParameterMapping;
2324
import org.apache.ibatis.mapping.SqlSource;
2425
import org.apache.ibatis.parsing.GenericTokenParser;
25-
import org.apache.ibatis.parsing.StringParser;
2626
import org.apache.ibatis.parsing.TokenHandler;
2727
import org.apache.ibatis.reflection.MetaClass;
2828
import org.apache.ibatis.reflection.MetaObject;
@@ -45,13 +45,27 @@ public SqlSource parse(String originalSql, Class<?> parameterType, Map<String, O
4545
GenericTokenParser parser = new GenericTokenParser("#{", "}", handler);
4646
String sql;
4747
if (configuration.isShrinkWhitespacesInSql()) {
48-
sql = parser.parse(StringParser.removeBreakingWhitespace(originalSql));
48+
sql = parser.parse(removeExtraWhitespaces(originalSql));
4949
} else {
5050
sql = parser.parse(originalSql);
5151
}
5252
return new StaticSqlSource(configuration, sql, handler.getParameterMappings());
5353
}
5454

55+
public static String removeExtraWhitespaces(String original) {
56+
StringTokenizer tokenizer = new StringTokenizer(original);
57+
StringBuilder builder = new StringBuilder();
58+
boolean hasMoreTokens = tokenizer.hasMoreTokens();
59+
while (hasMoreTokens) {
60+
builder.append(tokenizer.nextToken());
61+
hasMoreTokens = tokenizer.hasMoreTokens();
62+
if (hasMoreTokens) {
63+
builder.append(' ');
64+
}
65+
}
66+
return builder.toString();
67+
}
68+
5569
private static class ParameterMappingTokenHandler extends BaseBuilder implements TokenHandler {
5670

5771
private List<ParameterMapping> parameterMappings = new ArrayList<>();

src/main/java/org/apache/ibatis/logging/jdbc/BaseJdbcLogger.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@
2828
import java.util.Set;
2929
import java.util.stream.Collectors;
3030

31+
import org.apache.ibatis.builder.SqlSourceBuilder;
3132
import org.apache.ibatis.logging.Log;
32-
import org.apache.ibatis.parsing.StringParser;
3333
import org.apache.ibatis.reflection.ArrayUtil;
3434

3535
/**
@@ -120,8 +120,8 @@ protected void clearColumnInfo() {
120120
columnValues.clear();
121121
}
122122

123-
protected String removeBreakingWhitespace(String original) {
124-
return StringParser.removeBreakingWhitespace(original);
123+
protected String removeExtraWhitespace(String original) {
124+
return SqlSourceBuilder.removeExtraWhitespaces(original);
125125
}
126126

127127
protected boolean isDebugEnabled() {

src/main/java/org/apache/ibatis/logging/jdbc/ConnectionLogger.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ public Object invoke(Object proxy, Method method, Object[] params)
5050
}
5151
if ("prepareStatement".equals(method.getName()) || "prepareCall".equals(method.getName())) {
5252
if (isDebugEnabled()) {
53-
debug(" Preparing: " + removeBreakingWhitespace((String) params[0]), true);
53+
debug(" Preparing: " + removeExtraWhitespace((String) params[0]), true);
5454
}
5555
PreparedStatement stmt = (PreparedStatement) method.invoke(connection, params);
5656
stmt = PreparedStatementLogger.newInstance(stmt, statementLog, queryStack);

src/main/java/org/apache/ibatis/logging/jdbc/StatementLogger.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ public Object invoke(Object proxy, Method method, Object[] params) throws Throwa
4848
}
4949
if (EXECUTE_METHODS.contains(method.getName())) {
5050
if (isDebugEnabled()) {
51-
debug(" Executing: " + removeBreakingWhitespace((String) params[0]), true);
51+
debug(" Executing: " + removeExtraWhitespace((String) params[0]), true);
5252
}
5353
if ("executeQuery".equals(method.getName())) {
5454
ResultSet rs = (ResultSet) method.invoke(statement, params);

src/main/java/org/apache/ibatis/parsing/StringParser.java

Lines changed: 0 additions & 31 deletions
This file was deleted.

0 commit comments

Comments
 (0)