From 7e04d2a188afbfd90e5c0b598b58052b12e16198 Mon Sep 17 00:00:00 2001 From: Michael Yang Date: Mon, 25 May 2020 09:35:50 +0800 Subject: [PATCH] optimize: optimize ColumnUtils.addEscape method performance (#2044) --- .../main/java/io/seata/rm/datasource/ColumnUtils.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/rm-datasource/src/main/java/io/seata/rm/datasource/ColumnUtils.java b/rm-datasource/src/main/java/io/seata/rm/datasource/ColumnUtils.java index 4f70009f205..11a899d0716 100644 --- a/rm-datasource/src/main/java/io/seata/rm/datasource/ColumnUtils.java +++ b/rm-datasource/src/main/java/io/seata/rm/datasource/ColumnUtils.java @@ -166,8 +166,13 @@ private static String addEscape(String colName, String dbType, Escape escape) { } } - StringBuilder result = new StringBuilder(2 * (String.valueOf(escape.value).length()) + colName.length()); - return result.append(escape.value).append(colName).append(escape.value).toString(); + char[] buf = new char[colName.length() + 2]; + buf[0] = escape.value; + buf[buf.length - 1] = escape.value; + + colName.getChars(0,colName.length(),buf,1); + + return new String(buf).intern(); } private static boolean isMysqlSeries(String dbType) {