Bläddra i källkod

改一波字符串.

nieqiurong 6 år sedan
förälder
incheckning
2e95b10a44
53 ändrade filer med 281 tillägg och 136 borttagningar
  1. 11 10
      mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/MybatisMapperAnnotationBuilder.java
  2. 3 1
      mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/MybatisXMLConfigBuilder.java
  3. 2 1
      mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/conditions/AbstractLambdaWrapper.java
  4. 10 9
      mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/conditions/AbstractWrapper.java
  5. 3 2
      mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/conditions/query/LambdaQueryWrapper.java
  6. 2 1
      mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/conditions/query/QueryWrapper.java
  7. 4 3
      mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/conditions/segments/GroupBySegmentList.java
  8. 4 3
      mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/conditions/segments/HavingSegmentList.java
  9. 2 1
      mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/conditions/segments/MergeSegments.java
  10. 2 1
      mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/conditions/segments/NormalSegmentList.java
  11. 5 4
      mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/conditions/segments/OrderBySegmentList.java
  12. 2 1
      mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/conditions/update/LambdaUpdateWrapper.java
  13. 2 1
      mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/conditions/update/UpdateWrapper.java
  14. 4 3
      mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/enums/SqlKeyword.java
  15. 13 12
      mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/injector/AbstractMethod.java
  16. 5 4
      mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/injector/methods/Insert.java
  17. 2 1
      mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/metadata/TableInfo.java
  18. 3 2
      mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/override/PageMapperMethod.java
  19. 2 1
      mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/parser/SqlParserHelper.java
  20. 1 1
      mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/toolkit/IdWorker.java
  21. 1 1
      mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/toolkit/Sequence.java
  22. 93 0
      mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/toolkit/StringPool.java
  23. 6 6
      mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/toolkit/StringUtils.java
  24. 2 2
      mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/toolkit/TableInfoHelper.java
  25. 9 8
      mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/toolkit/sql/SqlFormatter.java
  26. 5 4
      mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/toolkit/sql/SqlUtils.java
  27. 3 2
      mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/toolkit/support/SerializedLambda.java
  28. 2 1
      mybatis-plus-core/src/test/java/com/baomidou/mybatisplus/core/test/WrapperTest.java
  29. 2 1
      mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/handlers/MybatisMapWrapper.java
  30. 8 7
      mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/injector/LogicAbstractMethod.java
  31. 2 1
      mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/injector/methods/LogicUpdateById.java
  32. 2 1
      mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/plugins/OptimisticLockerInterceptor.java
  33. 2 1
      mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/plugins/PaginationInterceptor.java
  34. 3 2
      mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/plugins/PerformanceInterceptor.java
  35. 3 1
      mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/plugins/pagination/dialects/DB2Dialect.java
  36. 3 1
      mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/plugins/pagination/dialects/HSQLDialect.java
  37. 3 1
      mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/plugins/pagination/dialects/MariaDBDialect.java
  38. 3 1
      mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/plugins/pagination/dialects/MySqlDialect.java
  39. 3 2
      mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/plugins/pagination/dialects/SQLServer2005Dialect.java
  40. 2 1
      mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/plugins/pagination/optimize/JsqlParserCountOptimize.java
  41. 2 1
      mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/plugins/tenant/TenantSqlParser.java
  42. 6 5
      mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/spring/MybatisMapperRefresh.java
  43. 5 4
      mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/spring/MybatisSqlSessionFactoryBean.java
  44. 3 1
      mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/config/ConstVal.java
  45. 2 1
      mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/config/PackageConfig.java
  46. 7 6
      mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/config/builder/ConfigBuilder.java
  47. 6 5
      mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/config/rules/NamingStrategy.java
  48. 2 1
      mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/engine/AbstractTemplateEngine.java
  49. 2 1
      mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/engine/FreemarkerTemplateEngine.java
  50. 3 2
      mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/engine/VelocityTemplateEngine.java
  51. 2 1
      mybatis-plus-generator/src/test/java/com/baomidou/mybatisplus/test/generator/PostgreSQLGenerator.java
  52. 2 1
      mybatis-plus-generator/src/test/java/com/baomidou/mybatisplus/test/generator/SQLServerGenerator.java
  53. 0 1
      mybatis-plus/src/test/java/com/baomidou/mybatisplus/test/h2/H2UserTest.java

+ 11 - 10
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/MybatisMapperAnnotationBuilder.java

@@ -94,6 +94,7 @@ import org.apache.ibatis.type.UnknownTypeHandler;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.override.PageMapperMethod;
 import com.baomidou.mybatisplus.core.toolkit.GlobalConfigUtils;
+import com.baomidou.mybatisplus.core.toolkit.StringPool;
 
 
 /**
@@ -246,17 +247,17 @@ public class MybatisMapperAnnotationBuilder extends MapperAnnotationBuilder {
     private String generateResultMapName(Method method) {
         Results results = method.getAnnotation(Results.class);
         if (results != null && !results.id().isEmpty()) {
-            return type.getName() + "." + results.id();
+            return type.getName() + StringPool.DOT + results.id();
         }
         StringBuilder suffix = new StringBuilder();
         for (Class<?> c : method.getParameterTypes()) {
-            suffix.append("-");
+            suffix.append(StringPool.DASH);
             suffix.append(c.getSimpleName());
         }
         if (suffix.length() < 1) {
             suffix.append("-void");
         }
-        return type.getName() + "." + method.getName() + suffix;
+        return type.getName() + StringPool.DOT + method.getName() + suffix;
     }
 
     private void applyResultMap(String resultMapId, Class<?> returnType, Arg[] args, Result[] results,
@@ -273,7 +274,7 @@ public class MybatisMapperAnnotationBuilder extends MapperAnnotationBuilder {
     private void createDiscriminatorResultMaps(String resultMapId, Class<?> resultType, TypeDiscriminator discriminator) {
         if (discriminator != null) {
             for (Case c : discriminator.cases()) {
-                String caseResultMapId = resultMapId + "-" + c.value();
+                String caseResultMapId = resultMapId + StringPool.DASH + c.value();
                 List<ResultMapping> resultMappings = new ArrayList<>();
                 // issue #136
                 applyConstructorArgs(c.constructArgs(), resultType, resultMappings);
@@ -296,7 +297,7 @@ public class MybatisMapperAnnotationBuilder extends MapperAnnotationBuilder {
             Map<String, String> discriminatorMap = new HashMap<>();
             for (Case c : cases) {
                 String value = c.value();
-                String caseResultMapId = resultMapId + "-" + value;
+                String caseResultMapId = resultMapId + StringPool.DASH + value;
                 discriminatorMap.put(value, caseResultMapId);
             }
             return assistant.buildDiscriminator(resultType, column, javaType, jdbcType, typeHandler, discriminatorMap);
@@ -310,7 +311,7 @@ public class MybatisMapperAnnotationBuilder extends MapperAnnotationBuilder {
         SqlSource sqlSource = getSqlSourceFromAnnotations(method, parameterTypeClass, languageDriver);
         if (sqlSource != null) {
             Options options = method.getAnnotation(Options.class);
-            final String mappedStatementId = type.getName() + "." + method.getName();
+            final String mappedStatementId = type.getName() + StringPool.DOT + method.getName();
             Integer fetchSize = null;
             Integer timeout = null;
             StatementType statementType = StatementType.PREPARED;
@@ -360,7 +361,7 @@ public class MybatisMapperAnnotationBuilder extends MapperAnnotationBuilder {
                 StringBuilder sb = new StringBuilder();
                 for (String resultMap : resultMaps) {
                     if (sb.length() > 0) {
-                        sb.append(",");
+                        sb.append(StringPool.COMMA);
                     }
                     sb.append(resultMap);
                 }
@@ -499,7 +500,7 @@ public class MybatisMapperAnnotationBuilder extends MapperAnnotationBuilder {
         final StringBuilder sql = new StringBuilder();
         for (String fragment : strings) {
             sql.append(fragment);
-            sql.append(" ");
+            sql.append(StringPool.SPACE);
         }
         return languageDriver.createSqlSource(configuration, sql.toString().trim(), parameterTypeClass);
     }
@@ -579,8 +580,8 @@ public class MybatisMapperAnnotationBuilder extends MapperAnnotationBuilder {
         if (nestedSelect.length() < 1) {
             nestedSelect = result.many().select();
         }
-        if (!nestedSelect.contains(".")) {
-            nestedSelect = type.getName() + "." + nestedSelect;
+        if (!nestedSelect.contains(StringPool.DOT)) {
+            nestedSelect = type.getName() + StringPool.DOT + nestedSelect;
         }
         return nestedSelect;
     }

+ 3 - 1
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/MybatisXMLConfigBuilder.java

@@ -52,6 +52,8 @@ import org.apache.ibatis.session.LocalCacheScope;
 import org.apache.ibatis.transaction.TransactionFactory;
 import org.apache.ibatis.type.JdbcType;
 
+import com.baomidou.mybatisplus.core.toolkit.StringPool;
+
 /**
  * <p>
  * Copy from XMLConfigBuilder in Mybatis and replace default Configuration class
@@ -151,7 +153,7 @@ public class MybatisXMLConfigBuilder extends BaseBuilder {
     private void loadCustomVfs(Properties props) throws ClassNotFoundException {
         String value = props.getProperty("vfsImpl");
         if (value != null) {
-            String[] clazzes = value.split(",");
+            String[] clazzes = value.split(StringPool.COMMA);
             for (String clazz : clazzes) {
                 if (!clazz.isEmpty()) {
                     @SuppressWarnings("unchecked")

+ 2 - 1
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/conditions/AbstractLambdaWrapper.java

@@ -21,6 +21,7 @@ import java.util.Optional;
 import com.baomidou.mybatisplus.core.toolkit.Assert;
 import com.baomidou.mybatisplus.core.toolkit.ExceptionUtils;
 import com.baomidou.mybatisplus.core.toolkit.LambdaUtils;
+import com.baomidou.mybatisplus.core.toolkit.StringPool;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.support.Property;
 import com.baomidou.mybatisplus.core.toolkit.support.SerializedLambda;
@@ -49,7 +50,7 @@ public abstract class AbstractLambdaWrapper<T, This extends AbstractLambdaWrappe
     private String getColumn(SerializedLambda lambda) {
         String fieldName = StringUtils.resolveFieldName(lambda.getImplMethodName());
         if (!initColumnMap || columnMap.get(fieldName) == null) {
-            String entityClassName = lambda.getImplClass().replace("/", ".");
+            String entityClassName = lambda.getImplClass().replace(StringPool.SLASH, StringPool.DOT);
             columnMap = LambdaUtils.getColumnMap(entityClassName);
             Assert.notEmpty(columnMap, "该模式不能应用于非 baseMapper 的泛型 entity 之外的 entity!");
             initColumnMap = true;

+ 10 - 9
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/conditions/AbstractWrapper.java

@@ -56,6 +56,7 @@ import com.baomidou.mybatisplus.core.toolkit.ArrayUtils;
 import com.baomidou.mybatisplus.core.toolkit.Assert;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.Constants;
+import com.baomidou.mybatisplus.core.toolkit.StringPool;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 
 
@@ -88,7 +89,7 @@ public abstract class AbstractWrapper<T, R, This extends AbstractWrapper<T, R, T
     protected AtomicInteger paramNameSeq;
     protected Map<String, Object> paramNameValuePairs;
     protected String paramAlias = null;
-    protected String lastSql = "";
+    protected String lastSql = StringPool.EMPTY;
     /**
      * 数据库表映射实体类
      */
@@ -177,7 +178,7 @@ public abstract class AbstractWrapper<T, R, This extends AbstractWrapper<T, R, T
 
     @Override
     public This like(boolean condition, R column, Object val) {
-        return doIt(condition, () -> columnToString(column), LIKE, () -> formatSql("{0}", "%" + val + "%"));
+        return doIt(condition, () -> columnToString(column), LIKE, () -> formatSql("{0}", StringPool.PERCENT + val + StringPool.PERCENT));
     }
 
     @Override
@@ -187,12 +188,12 @@ public abstract class AbstractWrapper<T, R, This extends AbstractWrapper<T, R, T
 
     @Override
     public This likeLeft(boolean condition, R column, Object val) {
-        return doIt(condition, () -> columnToString(column), LIKE, () -> formatSql("{0}", "%" + val));
+        return doIt(condition, () -> columnToString(column), LIKE, () -> formatSql("{0}", StringPool.PERCENT + val));
     }
 
     @Override
     public This likeRight(boolean condition, R column, Object val) {
-        return doIt(condition, () -> columnToString(column), LIKE, () -> formatSql("{0}", val + "%"));
+        return doIt(condition, () -> columnToString(column), LIKE, () -> formatSql("{0}", val + StringPool.PERCENT));
     }
 
     @Override
@@ -233,7 +234,7 @@ public abstract class AbstractWrapper<T, R, This extends AbstractWrapper<T, R, T
 
     @Override
     public This last(boolean condition, String lastSql) {
-        this.lastSql = " " + lastSql;
+        this.lastSql = StringPool.SPACE + lastSql;
         return typedThis;
     }
 
@@ -346,8 +347,8 @@ public abstract class AbstractWrapper<T, R, This extends AbstractWrapper<T, R, T
      * @param condition 查询条件值
      */
     protected This addNestedCondition(boolean condition, Function<This, This> func) {
-        return doIt(condition, () -> "(",
-            func.apply(instance(paramNameSeq, paramNameValuePairs)), () -> ")");
+        return doIt(condition, () -> StringPool.LEFT_BRACKET,
+            func.apply(instance(paramNameSeq, paramNameValuePairs)), () -> StringPool.RIGHT_BRACKET);
     }
 
     /**
@@ -410,7 +411,7 @@ public abstract class AbstractWrapper<T, R, This extends AbstractWrapper<T, R, T
      */
     private ISqlSegment inExpression(Collection<?> value) {
         return () -> value.stream().map(i -> formatSql("{0}", i))
-            .collect(joining(",", "(", ")"));
+            .collect(joining(StringPool.COMMA, StringPool.LEFT_BRACKET, StringPool.RIGHT_BRACKET));
     }
 
     /**
@@ -462,7 +463,7 @@ public abstract class AbstractWrapper<T, R, This extends AbstractWrapper<T, R, T
      * @param columns 多字段
      */
     protected String columnsToString(R... columns) {
-        return Arrays.stream(columns).map(this::columnToString).collect(joining(","));
+        return Arrays.stream(columns).map(this::columnToString).collect(joining(StringPool.COMMA));
     }
 
     /**

+ 3 - 2
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/conditions/query/LambdaQueryWrapper.java

@@ -26,6 +26,7 @@ import com.baomidou.mybatisplus.core.conditions.AbstractLambdaWrapper;
 import com.baomidou.mybatisplus.core.conditions.segments.MergeSegments;
 import com.baomidou.mybatisplus.core.toolkit.Assert;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.StringPool;
 import com.baomidou.mybatisplus.core.toolkit.TableInfoHelper;
 import com.baomidou.mybatisplus.core.toolkit.sql.SqlUtils;
 import com.baomidou.mybatisplus.core.toolkit.support.Property;
@@ -70,9 +71,9 @@ public class LambdaQueryWrapper<T> extends AbstractLambdaWrapper<T, LambdaQueryW
                 queryColumn = Arrays.asList(TableInfoHelper.getTableColumns(entityClass,excludeColumn.toArray(new String[0])));
             }
         }else{
-            return SqlUtils.stripSqlInjection(queryColumn.stream().filter($this -> !excludeColumn.contains($this)).collect(Collectors.joining(",")));
+            return SqlUtils.stripSqlInjection(queryColumn.stream().filter($this -> !excludeColumn.contains($this)).collect(Collectors.joining(StringPool.COMMA)));
         }
-        return CollectionUtils.isEmpty(queryColumn) ? null:queryColumn.stream().collect(Collectors.joining(","));
+        return CollectionUtils.isEmpty(queryColumn) ? null:queryColumn.stream().collect(Collectors.joining(StringPool.COMMA));
     }
 
     /**

+ 2 - 1
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/conditions/query/QueryWrapper.java

@@ -24,6 +24,7 @@ import com.baomidou.mybatisplus.core.conditions.AbstractWrapper;
 import com.baomidou.mybatisplus.core.conditions.segments.MergeSegments;
 import com.baomidou.mybatisplus.core.toolkit.ArrayUtils;
 import com.baomidou.mybatisplus.core.toolkit.Assert;
+import com.baomidou.mybatisplus.core.toolkit.StringPool;
 import com.baomidou.mybatisplus.core.toolkit.TableInfoHelper;
 import com.baomidou.mybatisplus.core.toolkit.sql.SqlUtils;
 
@@ -83,7 +84,7 @@ public class QueryWrapper<T> extends AbstractWrapper<T, String, QueryWrapper<T>>
                 sqlSelect = TableInfoHelper.getTableColumns(entityClass, excludeColumns);
             }
         }
-        return ArrayUtils.isNotEmpty(sqlSelect) ? SqlUtils.stripSqlInjection(Arrays.stream(sqlSelect).collect(Collectors.joining(","))) : null;
+        return ArrayUtils.isNotEmpty(sqlSelect) ? SqlUtils.stripSqlInjection(Arrays.stream(sqlSelect).collect(Collectors.joining(StringPool.COMMA))) : null;
     }
 
     public QueryWrapper<T> select(String... sqlSelect) {

+ 4 - 3
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/conditions/segments/GroupBySegmentList.java

@@ -21,6 +21,7 @@ import static java.util.stream.Collectors.joining;
 import java.util.List;
 
 import com.baomidou.mybatisplus.core.conditions.ISqlSegment;
+import com.baomidou.mybatisplus.core.toolkit.StringPool;
 
 /**
  * <p>
@@ -42,9 +43,9 @@ public class GroupBySegmentList extends AbstractISegmentList {
     @Override
     public String getSqlSegment() {
         if (isEmpty()) {
-            return "";
+            return StringPool.EMPTY;
         }
-        return this.stream().map(ISqlSegment::getSqlSegment).collect(joining(",",
-            " " + GROUP_BY.getSqlSegment() + " ", ""));
+        return this.stream().map(ISqlSegment::getSqlSegment).collect(joining(StringPool.COMMA,
+            StringPool.SPACE + GROUP_BY.getSqlSegment() + StringPool.SPACE, StringPool.EMPTY));
     }
 }

+ 4 - 3
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/conditions/segments/HavingSegmentList.java

@@ -22,6 +22,7 @@ import static java.util.stream.Collectors.joining;
 import java.util.List;
 
 import com.baomidou.mybatisplus.core.conditions.ISqlSegment;
+import com.baomidou.mybatisplus.core.toolkit.StringPool;
 
 /**
  * <p>
@@ -46,9 +47,9 @@ public class HavingSegmentList extends AbstractISegmentList {
     @Override
     public String getSqlSegment() {
         if (isEmpty()) {
-            return "";
+            return StringPool.EMPTY;
         }
-        return this.stream().map(ISqlSegment::getSqlSegment).collect(joining(" ",
-            " " + HAVING.getSqlSegment() + " ", ""));
+        return this.stream().map(ISqlSegment::getSqlSegment).collect(joining(StringPool.SPACE,
+            StringPool.SPACE + HAVING.getSqlSegment() + StringPool.SPACE, StringPool.EMPTY));
     }
 }

+ 2 - 1
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/conditions/segments/MergeSegments.java

@@ -19,6 +19,7 @@ import java.util.Arrays;
 import java.util.List;
 
 import com.baomidou.mybatisplus.core.conditions.ISqlSegment;
+import com.baomidou.mybatisplus.core.toolkit.StringPool;
 
 /**
  * <p>
@@ -56,7 +57,7 @@ public class MergeSegments implements ISqlSegment {
             if (!groupBy.isEmpty() || !orderBy.isEmpty()) {
                 return "1=1" + groupBy.getSqlSegment() + having.getSqlSegment() + orderBy.getSqlSegment();
             } else {
-                return "";
+                return StringPool.EMPTY;
             }
         } else {
             return normal.getSqlSegment() + groupBy.getSqlSegment() + having.getSqlSegment() + orderBy.getSqlSegment();

+ 2 - 1
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/conditions/segments/NormalSegmentList.java

@@ -20,6 +20,7 @@ import java.util.stream.Collectors;
 
 import com.baomidou.mybatisplus.core.conditions.ISqlSegment;
 import com.baomidou.mybatisplus.core.enums.SqlKeyword;
+import com.baomidou.mybatisplus.core.toolkit.StringPool;
 
 /**
  * <p>
@@ -88,6 +89,6 @@ public class NormalSegmentList extends AbstractISegmentList {
         if (MatchSegment.AND_OR.match(lastValue)) {
             removeLast();
         }
-        return this.stream().map(ISqlSegment::getSqlSegment).collect(Collectors.joining(" "));
+        return this.stream().map(ISqlSegment::getSqlSegment).collect(Collectors.joining(StringPool.SPACE));
     }
 }

+ 5 - 4
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/conditions/segments/OrderBySegmentList.java

@@ -21,6 +21,7 @@ import static java.util.stream.Collectors.joining;
 import java.util.List;
 
 import com.baomidou.mybatisplus.core.conditions.ISqlSegment;
+import com.baomidou.mybatisplus.core.toolkit.StringPool;
 
 /**
  * <p>
@@ -37,7 +38,7 @@ public class OrderBySegmentList extends AbstractISegmentList {
     protected boolean transformList(List<ISqlSegment> list, ISqlSegment firstSegment) {
         list.remove(0);
         if (!isEmpty()) {
-            super.add(() -> ",");
+            super.add(() -> StringPool.COMMA);
         }
         return true;
     }
@@ -45,9 +46,9 @@ public class OrderBySegmentList extends AbstractISegmentList {
     @Override
     public String getSqlSegment() {
         if (isEmpty()) {
-            return "";
+            return StringPool.EMPTY;
         }
-        return this.stream().map(ISqlSegment::getSqlSegment).collect(joining(" ",
-            " " + ORDER_BY.getSqlSegment() + " ", ""));
+        return this.stream().map(ISqlSegment::getSqlSegment).collect(joining(StringPool.SPACE,
+            StringPool.SPACE + ORDER_BY.getSqlSegment() + StringPool.SPACE, StringPool.EMPTY));
     }
 }

+ 2 - 1
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/conditions/update/LambdaUpdateWrapper.java

@@ -25,6 +25,7 @@ import java.util.concurrent.atomic.AtomicInteger;
 import com.baomidou.mybatisplus.core.conditions.AbstractLambdaWrapper;
 import com.baomidou.mybatisplus.core.conditions.segments.MergeSegments;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.StringPool;
 import com.baomidou.mybatisplus.core.toolkit.sql.SqlUtils;
 import com.baomidou.mybatisplus.core.toolkit.support.Property;
 
@@ -57,7 +58,7 @@ public class LambdaUpdateWrapper<T> extends AbstractLambdaWrapper<T, LambdaUpdat
         if (CollectionUtils.isEmpty(sqlSet)) {
             return null;
         }
-        return SqlUtils.stripSqlInjection(sqlSet.stream().collect(joining(",")));
+        return SqlUtils.stripSqlInjection(sqlSet.stream().collect(joining(StringPool.COMMA)));
     }
 
     public LambdaUpdateWrapper<T> set(Property<T, ?> column, Object val) {

+ 2 - 1
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/conditions/update/UpdateWrapper.java

@@ -25,6 +25,7 @@ import java.util.concurrent.atomic.AtomicInteger;
 import com.baomidou.mybatisplus.core.conditions.AbstractWrapper;
 import com.baomidou.mybatisplus.core.conditions.segments.MergeSegments;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.StringPool;
 import com.baomidou.mybatisplus.core.toolkit.sql.SqlUtils;
 
 /**
@@ -75,7 +76,7 @@ public class UpdateWrapper<T> extends AbstractWrapper<T, String, UpdateWrapper<T
         if (CollectionUtils.isEmpty(sqlSet)) {
             return null;
         }
-        return SqlUtils.stripSqlInjection(sqlSet.stream().collect(joining(",")));
+        return SqlUtils.stripSqlInjection(sqlSet.stream().collect(joining(StringPool.COMMA)));
     }
 
     /**

+ 4 - 3
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/enums/SqlKeyword.java

@@ -17,6 +17,7 @@ package com.baomidou.mybatisplus.core.enums;
 
 
 import com.baomidou.mybatisplus.core.conditions.ISqlSegment;
+import com.baomidou.mybatisplus.core.toolkit.StringPool;
 
 /**
  * <p>
@@ -32,11 +33,11 @@ public enum SqlKeyword implements ISqlSegment {
     IN("IN"),
     NOT("NOT"),
     LIKE("LIKE"),
-    EQ("="),
+    EQ(StringPool.EQUALS),
     NE("<>"),
-    GT(">"),
+    GT(StringPool.RIGHT_CHEV),
     GE(">="),
-    LT("<"),
+    LT(StringPool.LEFT_CHEV),
     LE("<="),
     IS_NULL("IS NULL"),
     IS_NOT_NULL("IS NOT NULL"),

+ 13 - 12
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/injector/AbstractMethod.java

@@ -41,6 +41,7 @@ import com.baomidou.mybatisplus.core.parser.SqlParserHelper;
 import com.baomidou.mybatisplus.core.toolkit.ArrayUtils;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.GlobalConfigUtils;
+import com.baomidou.mybatisplus.core.toolkit.StringPool;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.TableInfoHelper;
 
@@ -144,11 +145,11 @@ public abstract class AbstractMethod {
                     // 更新排除逻辑删除字段
                     continue;
                 }
-                set.append(fieldInfo.getColumn()).append("=");
+                set.append(fieldInfo.getColumn()).append(StringPool.EQUALS);
                 if (StringUtils.isCharSequence(fieldInfo.getPropertyType())) {
-                    set.append("'").append(fieldInfo.getLogicDeleteValue()).append("',");
+                    set.append(StringPool.SINGLE_QUOTE).append(fieldInfo.getLogicDeleteValue()).append("',");
                 } else {
-                    set.append(fieldInfo.getLogicDeleteValue()).append(",");
+                    set.append(fieldInfo.getLogicDeleteValue()).append(StringPool.COMMA);
                 }
                 continue;
             }
@@ -157,8 +158,8 @@ public abstract class AbstractMethod {
                 || FieldFill.INSERT_UPDATE == fieldInfo.getFieldFill());
             if (ifTag) {
                 if (StringUtils.isNotEmpty(fieldInfo.getUpdate())) {
-                    set.append(fieldInfo.getColumn()).append("=")
-                        .append(String.format(fieldInfo.getUpdate(), fieldInfo.getColumn())).append(",");
+                    set.append(fieldInfo.getColumn()).append(StringPool.EQUALS)
+                        .append(String.format(fieldInfo.getUpdate(), fieldInfo.getColumn())).append(StringPool.COMMA);
                 } else {
                     set.append(convertIfTag(true, fieldInfo, prefix, false))
                         .append(fieldInfo.getColumn()).append("=#{");
@@ -215,7 +216,7 @@ public abstract class AbstractMethod {
             if (entityWrapper) {
                 columns.append("<choose><when test=\"ew != null and ew.sqlSelect != null\">${ew.sqlSelect}</when><otherwise>");
             }
-            columns.append("*");
+            columns.append(StringPool.ASTERISK);
             if (entityWrapper) {
                 columns.append("</otherwise></choose>");
             }
@@ -241,7 +242,7 @@ public abstract class AbstractMethod {
                 }
                 if (size >= 1) {
                     // 判断其余字段是否存在
-                    columns.append(",");
+                    columns.append(StringPool.COMMA);
                 }
             }
 
@@ -253,7 +254,7 @@ public abstract class AbstractMethod {
                         v += (" AS " + i.getProperty());
                     }
                     return v;
-                }).collect(Collectors.joining(",")));
+                }).collect(Collectors.joining(StringPool.COMMA)));
             }
             if (entityWrapper) {
                 columns.append("</otherwise></choose>");
@@ -340,7 +341,7 @@ public abstract class AbstractMethod {
         FieldStrategy fieldStrategy = fieldInfo.getFieldStrategy();
         if (fieldStrategy == FieldStrategy.IGNORED) {
             if (ignored) {
-                return "";
+                return StringPool.EMPTY;
             }
             // 查询策略,使用全局策略
             fieldStrategy = getGlobalConfig().getDbConfig().getFieldStrategy();
@@ -407,7 +408,7 @@ public abstract class AbstractMethod {
         where.append("<if test=\"ew.entity!=null\">");
         if (StringUtils.isNotEmpty(table.getKeyProperty())) {
             where.append("<if test=\"ew.entity.").append(table.getKeyProperty()).append("!=null\">");
-            where.append(table.getKeyColumn()).append("=#{ew.entity.").append(table.getKeyProperty()).append("}");
+            where.append(table.getKeyColumn()).append("=#{ew.entity.").append(table.getKeyProperty()).append(StringPool.RIGHT_BRACE);
             where.append("</if>");
         }
         List<TableFieldInfo> fieldList = table.getFieldList();
@@ -474,9 +475,9 @@ public abstract class AbstractMethod {
     protected MappedStatement addMappedStatement(Class<?> mapperClass, String id, SqlSource sqlSource,
                                                  SqlCommandType sqlCommandType, Class<?> parameterClass, String resultMap, Class<?> resultType,
                                                  KeyGenerator keyGenerator, String keyProperty, String keyColumn) {
-        String statementName = mapperClass.getName() + "." + id;
+        String statementName = mapperClass.getName() + StringPool.DOT + id;
         if (hasMappedStatement(statementName)) {
-            System.err.println("{" + statementName + "} Has been loaded by XML or SqlProvider, ignoring the injection of the SQL.");
+            System.err.println(StringPool.LEFT_BRACE + statementName + "} Has been loaded by XML or SqlProvider, ignoring the injection of the SQL.");
             return null;
         }
         /** 缓存逻辑处理 */

+ 5 - 4
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/injector/methods/Insert.java

@@ -29,6 +29,7 @@ import com.baomidou.mybatisplus.core.enums.SqlMethod;
 import com.baomidou.mybatisplus.core.injector.AbstractMethod;
 import com.baomidou.mybatisplus.core.metadata.TableFieldInfo;
 import com.baomidou.mybatisplus.core.metadata.TableInfo;
+import com.baomidou.mybatisplus.core.toolkit.StringPool;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.TableInfoHelper;
 
@@ -66,11 +67,11 @@ public class Insert extends AbstractMethod {
                     keyGenerator = TableInfoHelper.genKeyGenerator(tableInfo, builderAssistant, sqlMethod.getMethod(), languageDriver);
                     keyProperty = tableInfo.getKeyProperty();
                     keyColumn = tableInfo.getKeyColumn();
-                    fieldBuilder.append(tableInfo.getKeyColumn()).append(",");
+                    fieldBuilder.append(tableInfo.getKeyColumn()).append(StringPool.COMMA);
                     placeholderBuilder.append("#{").append(tableInfo.getKeyProperty()).append("},");
                 } else {
                     /** 用户输入自定义ID */
-                    fieldBuilder.append(tableInfo.getKeyColumn()).append(",");
+                    fieldBuilder.append(tableInfo.getKeyColumn()).append(StringPool.COMMA);
                     // 正常自定义主键策略
                     placeholderBuilder.append("#{").append(tableInfo.getKeyProperty()).append("},");
                 }
@@ -83,11 +84,11 @@ public class Insert extends AbstractMethod {
             // 在FieldIgnore,INSERT_UPDATE,INSERT 时设置为false
             if (FieldFill.INSERT == fieldInfo.getFieldFill()
                 || FieldFill.INSERT_UPDATE == fieldInfo.getFieldFill()) {
-                fieldBuilder.append(fieldInfo.getColumn()).append(",");
+                fieldBuilder.append(fieldInfo.getColumn()).append(StringPool.COMMA);
                 placeholderBuilder.append("#{").append(fieldInfo.getEl()).append("},");
             } else {
                 fieldBuilder.append(convertIfTagIgnored(fieldInfo, false));
-                fieldBuilder.append(fieldInfo.getColumn()).append(",");
+                fieldBuilder.append(fieldInfo.getColumn()).append(StringPool.COMMA);
                 fieldBuilder.append(convertIfTagIgnored(fieldInfo, true));
                 placeholderBuilder.append(convertIfTagIgnored(fieldInfo, false));
                 placeholderBuilder.append("#{").append(fieldInfo.getEl()).append("},");

+ 2 - 1
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/metadata/TableInfo.java

@@ -25,6 +25,7 @@ import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.KeySequence;
 import com.baomidou.mybatisplus.core.config.GlobalConfig;
 import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
+import com.baomidou.mybatisplus.core.toolkit.StringPool;
 
 /**
  * <p>
@@ -107,7 +108,7 @@ public class TableInfo {
     public String getSqlStatement(String sqlMethod) {
         StringBuilder statement = new StringBuilder();
         statement.append(currentNamespace);
-        statement.append(".");
+        statement.append(StringPool.DOT);
         statement.append(sqlMethod);
         return statement.toString();
     }

+ 3 - 2
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/override/PageMapperMethod.java

@@ -39,6 +39,7 @@ import org.apache.ibatis.session.RowBounds;
 import org.apache.ibatis.session.SqlSession;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.StringPool;
 
 /**
  * <p>
@@ -257,7 +258,7 @@ public class PageMapperMethod {
                     type = SqlCommandType.FLUSH;
                 } else {
                     throw new BindingException("Invalid bound statement (not found): "
-                        + mapperInterface.getName() + "." + methodName);
+                        + mapperInterface.getName() + StringPool.DOT + methodName);
                 }
             } else {
                 name = ms.getId();
@@ -278,7 +279,7 @@ public class PageMapperMethod {
 
         private MappedStatement resolveMappedStatement(Class<?> mapperInterface, String methodName,
                                                        Class<?> declaringClass, Configuration configuration) {
-            String statementId = mapperInterface.getName() + "." + methodName;
+            String statementId = mapperInterface.getName() + StringPool.DOT + methodName;
             if (configuration.hasStatement(statementId)) {
                 return configuration.getMappedStatement(statementId);
             } else if (mapperInterface.equals(declaringClass)) {

+ 2 - 1
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/parser/SqlParserHelper.java

@@ -23,6 +23,7 @@ import org.apache.ibatis.mapping.MappedStatement;
 import org.apache.ibatis.reflection.MetaObject;
 
 import com.baomidou.mybatisplus.annotation.SqlParser;
+import com.baomidou.mybatisplus.core.toolkit.StringPool;
 
 /**
  * <p>
@@ -54,7 +55,7 @@ public class SqlParserHelper {
             SqlParser sqlParser = method.getAnnotation(SqlParser.class);
             if (null != sqlParser) {
                 StringBuilder sid = new StringBuilder();
-                sid.append(mapperClass.getName()).append(".").append(method.getName());
+                sid.append(mapperClass.getName()).append(StringPool.DOT).append(method.getName());
                 SQL_PARSER_INFO_CACHE.put(sid.toString(), new SqlParserInfo(sqlParser));
             }
         }

+ 1 - 1
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/toolkit/IdWorker.java

@@ -47,7 +47,7 @@ public class IdWorker {
      * </p>
      */
     public static synchronized String get32UUID() {
-        return UUID.randomUUID().toString().replace("-", "");
+        return UUID.randomUUID().toString().replace(StringPool.DASH, StringPool.EMPTY);
     }
 
 }

+ 1 - 1
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/toolkit/Sequence.java

@@ -113,7 +113,7 @@ public class Sequence {
             /*
              * GET jvmPid
              */
-            mpid.append(name.split("@")[0]);
+            mpid.append(name.split(StringPool.AT)[0]);
         }
         /*
          * MAC + PID 的 hashcode 获取16个低位

+ 93 - 0
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/toolkit/StringPool.java

@@ -0,0 +1,93 @@
+package com.baomidou.mybatisplus.core.toolkit;
+
+/**
+ * Copy to jodd.util
+ *
+ * Pool of <code>String</code> constants to prevent repeating of
+ * hard-coded <code>String</code> literals in the code.
+ * Due to fact that these are <code>public static final</code>
+ * they will be inlined by java compiler and
+ * reference to this class will be dropped.
+ * There is <b>no</b> performance gain of using this pool.
+ * Read: http://java.sun.com/docs/books/jls/third_edition/html/lexical.html#3.10.5
+ * <ul>
+ *     <li>Literal strings within the same class in the same package represent references to the same <code>String</code> object.</li>
+ *     <li>Literal strings within different classes in the same package represent references to the same <code>String</code> object.</li>
+ *     <li>Literal strings within different classes in different packages likewise represent references to the same <code>String</code> object.</li>
+ *     <li>Strings computed by constant expressions are computed at compile time and then treated as if they were literals.</li>
+ *     <li>Strings computed by concatenation at run time are newly created and therefore distinct.</li>
+ * </ul>
+ */
+public interface StringPool {
+
+    String AMPERSAND        = "&";
+    String AND              = "and";
+    String AT               = "@";
+    String ASTERISK         = "*";
+    String STAR             = ASTERISK;
+    String BACK_SLASH       = "\\";
+    String COLON            = ":";
+    String COMMA            = ",";
+    String DASH             = "-";
+    String DOLLAR           = "$";
+    String DOT              = ".";
+    String DOTDOT           = "..";
+    String DOT_CLASS        = ".class";
+    String DOT_JAVA         = ".java";
+    String EMPTY            = "";
+    String EQUALS           = "=";
+    String FALSE            = "false";
+    String SLASH            = "/";
+    String HASH             = "#";
+    String HAT              = "^";
+    String LEFT_BRACE       = "{";
+    String LEFT_BRACKET     = "(";
+    String LEFT_CHEV        = "<";
+    String NEWLINE          = "\n";
+    String N                = "n";
+    String NO               = "no";
+    String NULL             = "null";
+    String OFF              = "off";
+    String ON               = "on";
+    String PERCENT          = "%";
+    String PIPE             = "|";
+    String PLUS             = "+";
+    String QUESTION_MARK    = "?";
+    String EXCLAMATION_MARK = "!";
+    String QUOTE            = "\"";
+    String RETURN           = "\r";
+    String TAB              = "\t";
+    String RIGHT_BRACE      = "}";
+    String RIGHT_BRACKET    = ")";
+    String RIGHT_CHEV       = ">";
+    String SEMICOLON        = ";";
+    String SINGLE_QUOTE     = "'";
+    String BACKTICK         = "`";
+    String SPACE            = " ";
+    String TILDA            = "~";
+    String LEFT_SQ_BRACKET  = "[";
+    String RIGHT_SQ_BRACKET = "]";
+    String TRUE             = "true";
+    String UNDERSCORE       = "_";
+    String UTF_8            = "UTF-8";
+    String US_ASCII			= "US-ASCII";
+    String ISO_8859_1       = "ISO-8859-1";
+    String Y                = "y";
+    String YES              = "yes";
+    String ONE 				= "1";
+    String ZERO				= "0";
+    String DOLLAR_LEFT_BRACE= "${";
+    String CRLF				= "\r\n";
+
+    String HTML_NBSP		= "&nbsp;";
+    String HTML_AMP			= "&amp";
+    String HTML_QUOTE 		= "&quot;";
+    String HTML_LT 			= "&lt;";
+    String HTML_GT 			= "&gt;";
+
+    // ---------------------------------------------------------------- array
+
+    String[] EMPTY_ARRAY = new String[0];
+
+    byte[] BYTES_NEW_LINE = StringPool.NEWLINE.getBytes();
+}

+ 6 - 6
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/toolkit/StringUtils.java

@@ -287,7 +287,7 @@ public class StringUtils {
      * @return 拼接后的字符串
      */
     public static String appends(String delimiter, String... strings) {
-        return Arrays.stream(strings).collect(joining(delimiter == null ? "" : delimiter));
+        return Arrays.stream(strings).collect(joining(delimiter == null ? StringPool.EMPTY : delimiter));
     }
 
     /**
@@ -316,7 +316,7 @@ public class StringUtils {
      * @return 单引号包含的原字符串的集合形式
      */
     public static String quotaMarkList(Collection<?> coll) {
-        return coll.stream().map(StringUtils::quotaMark).collect(joining(",", "(", ")"));
+        return coll.stream().map(StringUtils::quotaMark).collect(joining(StringPool.COMMA, StringPool.LEFT_BRACKET, StringPool.RIGHT_BRACKET));
     }
 
     /**
@@ -788,7 +788,7 @@ public class StringUtils {
             boolean isNotUnderscore = c != '_';
             if (lastOneIsNotUnderscore && (isUpperCaseAndPreviousIsLowerCase || previousIsWhitespace
                 || (betweenUpperCases && containsLowerCase && isUpperCaseAndPreviousIsUpperCase))) {
-                buf.append("_");
+                buf.append(StringPool.UNDERSCORE);
             } else if ((Character.isDigit(previousChar) && Character.isLetter(c))
                 || (false && Character.isDigit(c) && Character.isLetter(previousChar))) {
                 buf.append('_');
@@ -801,7 +801,7 @@ public class StringUtils {
             previousChar = c;
         }
         if (Character.isWhitespace(previousChar)) {
-            buf.append("_");
+            buf.append(StringPool.UNDERSCORE);
         }
         return buf.toString();
     }
@@ -826,7 +826,7 @@ public class StringUtils {
             if ((Character.isWhitespace(lastChar)) && (!Character.isWhitespace(c))
                 && ('-' != c) && (buf.length() > 0)
                 && (buf.charAt(buf.length() - 1) != '-')) {
-                buf.append("-");
+                buf.append(StringPool.DASH);
             }
             if ('_' == c) {
                 buf.append('-');
@@ -838,7 +838,7 @@ public class StringUtils {
             lastChar = c;
         }
         if (Character.isWhitespace(lastChar)) {
-            buf.append("-");
+            buf.append(StringPool.DASH);
         }
         return buf.toString();
     }

+ 2 - 2
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/toolkit/TableInfoHelper.java

@@ -404,8 +404,8 @@ public class TableInfoHelper {
         if (StringUtils.isNotEmpty(tableField.el())) {
             el = tableField.el();
         }
-        String[] columns = columnName.split(";");
-        String[] els = el.split(";");
+        String[] columns = columnName.split(StringPool.SEMICOLON);
+        String[] els = el.split(StringPool.SEMICOLON);
         if (columns.length == els.length) {
             for (int i = 0; i < columns.length; i++) {
                 fieldList.add(new TableFieldInfo(underCamel, dbConfig, tableInfo,

+ 9 - 8
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/toolkit/sql/SqlFormatter.java

@@ -12,6 +12,7 @@ import java.util.Locale;
 import java.util.Set;
 import java.util.StringTokenizer;
 
+import com.baomidou.mybatisplus.core.toolkit.StringPool;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 
 /**
@@ -125,22 +126,22 @@ public class SqlFormatter {
                     }
                     // cannot handle single quotes
                     while (!"'".equals(t) && tokens.hasMoreTokens());
-                } else if ("\"".equals(token)) {
+                } else if (StringPool.QUOTE.equals(token)) {
                     String t;
                     do {
                         t = tokens.nextToken();
                         token += t;
                     }
-                    while (!"\"".equals(t));
+                    while (!StringPool.QUOTE.equals(t));
                 }
 
-                if (afterByOrSetOrFromOrSelect && ",".equals(token)) {
+                if (afterByOrSetOrFromOrSelect && StringPool.COMMA.equals(token)) {
                     commaAfterByOrFromOrSelect();
-                } else if (afterOn && ",".equals(token)) {
+                } else if (afterOn && StringPool.COMMA.equals(token)) {
                     commaAfterOn();
-                } else if ("(".equals(token)) {
+                } else if (StringPool.LEFT_BRACKET.equals(token)) {
                     openParen();
-                } else if (")".equals(token)) {
+                } else if (StringPool.RIGHT_BRACKET.equals(token)) {
                     closeParen();
                 } else if (BEGIN_CLAUSES.contains(lcToken)) {
                     beginNewClause();
@@ -221,7 +222,7 @@ public class SqlFormatter {
 
         private void white() {
             if (!beginLine) {
-                result.append(" ");
+                result.append(StringPool.SPACE);
             }
         }
 
@@ -348,7 +349,7 @@ public class SqlFormatter {
         }
 
         private void newline() {
-            result.append("\n");
+            result.append(StringPool.NEWLINE);
             for (int i = 0; i < indent; i++) {
                 result.append(INDENT_STRING);
             }

+ 5 - 4
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/toolkit/sql/SqlUtils.java

@@ -17,6 +17,7 @@ package com.baomidou.mybatisplus.core.toolkit.sql;
 
 import com.baomidou.mybatisplus.core.enums.SqlLike;
 import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
+import com.baomidou.mybatisplus.core.toolkit.StringPool;
 
 /**
  * <p>
@@ -60,16 +61,16 @@ public class SqlUtils {
         StringBuilder builder = new StringBuilder(str.length() + 3);
         switch (type) {
             case LEFT:
-                builder.append("%").append(str);
+                builder.append(StringPool.PERCENT).append(str);
                 break;
             case RIGHT:
-                builder.append(str).append("%");
+                builder.append(str).append(StringPool.PERCENT);
                 break;
             case CUSTOM:
                 builder.append(str);
                 break;
             default:
-                builder.append("%").append(str).append("%");
+                builder.append(StringPool.PERCENT).append(str).append(StringPool.PERCENT);
         }
         return builder.toString();
     }
@@ -87,6 +88,6 @@ public class SqlUtils {
         if (null == sql) {
             throw new MybatisPlusException("strip sql is null.");
         }
-        return sql.replaceAll("('.+--)|(--)|(\\|)|(%7C)", "");
+        return sql.replaceAll("('.+--)|(--)|(\\|)|(%7C)", StringPool.EMPTY);
     }
 }

+ 3 - 2
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/toolkit/support/SerializedLambda.java

@@ -8,6 +8,7 @@ import java.io.Serializable;
 
 import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
 import com.baomidou.mybatisplus.core.toolkit.SerializationUtils;
+import com.baomidou.mybatisplus.core.toolkit.StringPool;
 
 import lombok.Getter;
 
@@ -59,7 +60,7 @@ public class SerializedLambda implements Serializable {
     @Override
     public String toString() {
         return new StringBuilder(super.toString())
-            .append(implClass.replace("/", "."))
-            .append("#").append(implMethodName).toString();
+            .append(implClass.replace(StringPool.SLASH, StringPool.DOT))
+            .append(StringPool.HASH).append(implMethodName).toString();
     }
 }

+ 2 - 1
mybatis-plus-core/src/test/java/com/baomidou/mybatisplus/core/test/WrapperTest.java

@@ -27,6 +27,7 @@ import com.baomidou.mybatisplus.core.conditions.ISqlSegment;
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.toolkit.StringPool;
 import com.baomidou.mybatisplus.core.toolkit.TableInfoHelper;
 
 public class WrapperTest {
@@ -42,7 +43,7 @@ public class WrapperTest {
 
     private <T> void logParams(QueryWrapper<T> wrapper) {
         wrapper.getParamNameValuePairs().forEach((k, v) ->
-            System.out.println("key: '" + k + "'\t\tvalue: '" + v + "'"));
+            System.out.println("key: '" + k + "'\t\tvalue: '" + v + StringPool.SINGLE_QUOTE));
     }
 
     @Test

+ 2 - 1
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/handlers/MybatisMapWrapper.java

@@ -5,6 +5,7 @@ import java.util.Map;
 import org.apache.ibatis.reflection.MetaObject;
 import org.apache.ibatis.reflection.wrapper.MapWrapper;
 
+import com.baomidou.mybatisplus.core.toolkit.StringPool;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 
 /**
@@ -25,7 +26,7 @@ public class MybatisMapWrapper extends MapWrapper {
     public String findProperty(String name, boolean useCamelCaseMapping) {
         if (useCamelCaseMapping
             && ((name.charAt(0) >= 'A' && name.charAt(0) <= 'Z')
-            || name.contains("_"))) {
+            || name.contains(StringPool.UNDERSCORE))) {
             return StringUtils.underlineToCamel(name);
         }
         return name;

+ 8 - 7
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/injector/LogicAbstractMethod.java

@@ -20,6 +20,7 @@ import java.util.List;
 import com.baomidou.mybatisplus.core.injector.AbstractMethod;
 import com.baomidou.mybatisplus.core.metadata.TableFieldInfo;
 import com.baomidou.mybatisplus.core.metadata.TableInfo;
+import com.baomidou.mybatisplus.core.toolkit.StringPool;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 
 /**
@@ -54,9 +55,9 @@ public abstract class LogicAbstractMethod extends AbstractMethod {
                 }
                 sql.append(fieldInfo.getColumn());
                 if (StringUtils.isCharSequence(fieldInfo.getPropertyType())) {
-                    sql.append("='").append(fieldInfo.getLogicNotDeleteValue()).append("'");
-                } else {
-                    sql.append("=").append(fieldInfo.getLogicNotDeleteValue());
+                    sql.append("='").append(fieldInfo.getLogicNotDeleteValue()).append(StringPool.SINGLE_QUOTE);
+                    } else {
+                    sql.append(StringPool.EQUALS).append(fieldInfo.getLogicNotDeleteValue());
                 }
             }
         }
@@ -78,11 +79,11 @@ public abstract class LogicAbstractMethod extends AbstractMethod {
         for (TableFieldInfo fieldInfo : fieldList) {
             if (fieldInfo.isLogicDelete()) {
                 if (++i > 1) {
-                    set.append(",");
+                    set.append(StringPool.COMMA);
                 }
-                set.append(fieldInfo.getColumn()).append("=");
+                set.append(fieldInfo.getColumn()).append(StringPool.EQUALS);
                 if (StringUtils.isCharSequence(fieldInfo.getPropertyType())) {
-                    set.append("'").append(fieldInfo.getLogicDeleteValue()).append("'");
+                    set.append(StringPool.SINGLE_QUOTE).append(fieldInfo.getLogicDeleteValue()).append(StringPool.SINGLE_QUOTE);
                 } else {
                     set.append(fieldInfo.getLogicDeleteValue());
                 }
@@ -103,7 +104,7 @@ public abstract class LogicAbstractMethod extends AbstractMethod {
             if (StringUtils.isNotEmpty(table.getKeyProperty())) {
                 where.append("<if test=\"ew.entity.").append(table.getKeyProperty()).append("!=null\">");
                 where.append(" AND ").append(table.getKeyColumn()).append("=#{ew.entity.");
-                where.append(table.getKeyProperty()).append("}");
+                where.append(table.getKeyProperty()).append(StringPool.RIGHT_BRACE);
                 where.append("</if>");
             }
             List<TableFieldInfo> fieldList = table.getFieldList();

+ 2 - 1
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/injector/methods/LogicUpdateById.java

@@ -21,6 +21,7 @@ import org.apache.ibatis.mapping.SqlSource;
 import com.baomidou.mybatisplus.core.enums.SqlMethod;
 import com.baomidou.mybatisplus.core.metadata.TableInfo;
 import com.baomidou.mybatisplus.core.toolkit.Constants;
+import com.baomidou.mybatisplus.core.toolkit.StringPool;
 import com.baomidou.mybatisplus.extension.injector.LogicAbstractMethod;
 import com.baomidou.mybatisplus.extension.plugins.OptimisticLockerInterceptor;
 
@@ -42,7 +43,7 @@ public class LogicUpdateById extends LogicAbstractMethod {
         StringBuilder append = new StringBuilder("<if test=\"et instanceof java.util.Map\">")
             .append("<if test=\"et.").append(OptimisticLockerInterceptor.MP_OPTLOCK_VERSION_ORIGINAL).append("!=null\">")
             .append(" AND ${et.").append(OptimisticLockerInterceptor.MP_OPTLOCK_VERSION_COLUMN)
-            .append("}=#{et.").append(OptimisticLockerInterceptor.MP_OPTLOCK_VERSION_ORIGINAL).append("}")
+            .append("}=#{et.").append(OptimisticLockerInterceptor.MP_OPTLOCK_VERSION_ORIGINAL).append(StringPool.RIGHT_BRACE)
             .append("</if></if>");
         if (logicDelete) {
             append.append(getLogicDeleteSql(true, tableInfo));

+ 2 - 1
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/plugins/OptimisticLockerInterceptor.java

@@ -26,6 +26,7 @@ import com.baomidou.mybatisplus.core.metadata.TableInfo;
 import com.baomidou.mybatisplus.core.toolkit.ClassUtils;
 import com.baomidou.mybatisplus.core.toolkit.Constants;
 import com.baomidou.mybatisplus.core.toolkit.ReflectionKit;
+import com.baomidou.mybatisplus.core.toolkit.StringPool;
 import com.baomidou.mybatisplus.core.toolkit.TableInfoHelper;
 
 import lombok.Data;
@@ -118,7 +119,7 @@ public class OptimisticLockerInterceptor implements Interceptor {
                 }
             } else if (et != null) { // entity
                 String methodId = ms.getId();
-                String updateMethodName = methodId.substring(ms.getId().lastIndexOf(".") + 1);
+                String updateMethodName = methodId.substring(ms.getId().lastIndexOf(StringPool.DOT) + 1);
                 if (PARAM_UPDATE_METHOD_NAME.equals(updateMethodName)) {
                     // update(entityClass, null) -->> update all. ignore version
                     return invocation.proceed();

+ 2 - 1
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/plugins/PaginationInterceptor.java

@@ -46,6 +46,7 @@ import com.baomidou.mybatisplus.core.parser.ISqlParser;
 import com.baomidou.mybatisplus.core.parser.SqlInfo;
 import com.baomidou.mybatisplus.core.toolkit.ArrayUtils;
 import com.baomidou.mybatisplus.core.toolkit.PluginUtils;
+import com.baomidou.mybatisplus.core.toolkit.StringPool;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.extension.handlers.AbstractSqlParserHandler;
 import com.baomidou.mybatisplus.extension.plugins.pagination.DialectFactory;
@@ -119,7 +120,7 @@ public class PaginationInterceptor extends AbstractSqlParserHandler implements I
     private static String concatOrderBuilder(String[] columns, String orderWord) {
         if (ArrayUtils.isNotEmpty(columns)) {
             return Arrays.stream(columns).filter(c -> StringUtils.isNotEmpty(c))
-                .collect(joining(",", "", orderWord));
+                .collect(joining(StringPool.COMMA, StringPool.EMPTY, orderWord));
         }
         return StringUtils.EMPTY;
     }

+ 3 - 2
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/plugins/PerformanceInterceptor.java

@@ -41,6 +41,7 @@ import org.apache.ibatis.session.ResultHandler;
 import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.PluginUtils;
+import com.baomidou.mybatisplus.core.toolkit.StringPool;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.SystemClock;
 import com.baomidou.mybatisplus.core.toolkit.sql.SqlUtils;
@@ -147,7 +148,7 @@ public class PerformanceInterceptor implements Interceptor {
         if (originalSql == null) {
             originalSql = statement.toString();
         }
-        originalSql = originalSql.replaceAll("[\\s]+", " ");
+        originalSql = originalSql.replaceAll("[\\s]+", StringPool.SPACE);
         int index = indexOfSqlStart(originalSql);
         if (index > 0) {
             originalSql = originalSql.substring(index, originalSql.length());
@@ -165,7 +166,7 @@ public class PerformanceInterceptor implements Interceptor {
         StringBuilder formatSql = new StringBuilder();
         formatSql.append(" Time:").append(timing);
         formatSql.append(" ms - ID:").append(ms.getId());
-        formatSql.append("\n Execute SQL:").append(SqlUtils.sqlFormat(originalSql, format)).append("\n");
+        formatSql.append(StringPool.NEWLINE).append("Execute SQL:").append(SqlUtils.sqlFormat(originalSql, format)).append(StringPool.NEWLINE);
         if (this.isWriteInLog()) {
             if (this.getMaxTime() >= 1 && timing > this.getMaxTime()) {
                 logger.error(formatSql.toString());

+ 3 - 1
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/plugins/pagination/dialects/DB2Dialect.java

@@ -15,6 +15,8 @@
  */
 package com.baomidou.mybatisplus.extension.plugins.pagination.dialects;
 
+import com.baomidou.mybatisplus.core.toolkit.StringPool;
+
 /**
  * <p>
  * DB2 数据库分页方言
@@ -55,7 +57,7 @@ public class DB2Dialect implements IDialect {
 
         // add the restriction to the outer select
         if (offset > 0) {
-            String endString = offset + "+" + limit;
+            String endString = offset + StringPool.PLUS + limit;
             pagingSelect.append("between ").append(offset).append("+1 and ").append(endString);
         } else {
             pagingSelect.append("<= ").append(limit);

+ 3 - 1
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/plugins/pagination/dialects/HSQLDialect.java

@@ -15,6 +15,8 @@
  */
 package com.baomidou.mybatisplus.extension.plugins.pagination.dialects;
 
+import com.baomidou.mybatisplus.core.toolkit.StringPool;
+
 /**
  * <p>
  * HSQL 数据库分页语句组装实现
@@ -29,7 +31,7 @@ public class HSQLDialect implements IDialect {
     @Override
     public String buildPaginationSql(String originalSql, long offset, long limit) {
         StringBuilder sql = new StringBuilder(originalSql);
-        sql.append(" limit ").append(offset).append(",").append(limit);
+        sql.append(" limit ").append(offset).append(StringPool.COMMA).append(limit);
         return sql.toString();
     }
 }

+ 3 - 1
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/plugins/pagination/dialects/MariaDBDialect.java

@@ -15,6 +15,8 @@
  */
 package com.baomidou.mybatisplus.extension.plugins.pagination.dialects;
 
+import com.baomidou.mybatisplus.core.toolkit.StringPool;
+
 /**
  * <p>
  * MariaDB 数据库分页语句组装实现
@@ -28,7 +30,7 @@ public class MariaDBDialect implements IDialect {
     @Override
     public String buildPaginationSql(String originalSql, long offset, long limit) {
         StringBuilder sql = new StringBuilder(originalSql);
-        sql.append(" LIMIT ").append(offset).append(",").append(limit);
+        sql.append(" LIMIT ").append(offset).append(StringPool.COMMA).append(limit);
         return sql.toString();
     }
 }

+ 3 - 1
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/plugins/pagination/dialects/MySqlDialect.java

@@ -15,6 +15,8 @@
  */
 package com.baomidou.mybatisplus.extension.plugins.pagination.dialects;
 
+import com.baomidou.mybatisplus.core.toolkit.StringPool;
+
 /**
  * <p>
  * MYSQL 数据库分页语句组装实现
@@ -28,7 +30,7 @@ public class MySqlDialect implements IDialect {
     @Override
     public String buildPaginationSql(String originalSql, long offset, long limit) {
         StringBuilder sql = new StringBuilder(originalSql);
-        sql.append(" LIMIT ").append(offset).append(",").append(limit);
+        sql.append(" LIMIT ").append(offset).append(StringPool.COMMA).append(limit);
         return sql.toString();
     }
 }

+ 3 - 2
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/plugins/pagination/dialects/SQLServer2005Dialect.java

@@ -15,6 +15,7 @@
  */
 package com.baomidou.mybatisplus.extension.plugins.pagination.dialects;
 
+import com.baomidou.mybatisplus.core.toolkit.StringPool;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 
 /**
@@ -34,7 +35,7 @@ public class SQLServer2005Dialect implements IDialect {
         if (orderByIndex != -1) {
             return sql.substring(orderByIndex);
         } else {
-            return "";
+            return StringPool.EMPTY;
         }
     }
 
@@ -42,7 +43,7 @@ public class SQLServer2005Dialect implements IDialect {
     public String buildPaginationSql(String originalSql, long offset, long limit) {
         StringBuilder pagingBuilder = new StringBuilder();
         String orderby = getOrderByPart(originalSql);
-        String distinctStr = "";
+        String distinctStr = StringPool.EMPTY;
 
         String loweredString = originalSql.toLowerCase();
         String sqlPartString = originalSql;

+ 2 - 1
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/plugins/pagination/optimize/JsqlParserCountOptimize.java

@@ -25,6 +25,7 @@ import org.apache.ibatis.reflection.MetaObject;
 import com.baomidou.mybatisplus.core.parser.ISqlParser;
 import com.baomidou.mybatisplus.core.parser.SqlInfo;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.StringPool;
 import com.baomidou.mybatisplus.extension.toolkit.SqlParserUtils;
 
 import net.sf.jsqlparser.expression.Expression;
@@ -75,7 +76,7 @@ public class JsqlParserCountOptimize implements ISqlParser {
             }
             //#95 Github, selectItems contains #{} ${}, which will be translated to ?, and it may be in a function: power(#{myInt},2)
             for (SelectItem item : plainSelect.getSelectItems()) {
-                if (item.toString().contains("?")) {
+                if (item.toString().contains(StringPool.QUESTION_MARK)) {
                     return sqlInfo.setSql(SqlParserUtils.getOriginalCountSql(selectStatement.toString()));
                 }
             }

+ 2 - 1
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/plugins/tenant/TenantSqlParser.java

@@ -19,6 +19,7 @@ import java.util.List;
 
 import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
 import com.baomidou.mybatisplus.core.parser.AbstractJsqlParser;
+import com.baomidou.mybatisplus.core.toolkit.StringPool;
 
 import net.sf.jsqlparser.expression.BinaryExpression;
 import net.sf.jsqlparser.expression.Expression;
@@ -278,7 +279,7 @@ public class TenantSqlParser extends AbstractJsqlParser {
         } else {
             column.append(table.getAlias().getName());
         }
-        column.append(".");
+        column.append(StringPool.DOT);
         column.append(this.tenantHandler.getTenantIdColumn());
         return new Column(column.toString());
     }

+ 6 - 5
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/spring/MybatisMapperRefresh.java

@@ -44,6 +44,7 @@ import org.springframework.util.ResourceUtils;
 
 import com.baomidou.mybatisplus.core.config.GlobalConfig;
 import com.baomidou.mybatisplus.core.toolkit.GlobalConfigUtils;
+import com.baomidou.mybatisplus.core.toolkit.StringPool;
 import com.baomidou.mybatisplus.core.toolkit.SystemClock;
 
 
@@ -231,7 +232,7 @@ public class MybatisMapperRefresh implements Runnable {
     private void cleanParameterMap(List<XNode> list, String namespace) {
         for (XNode parameterMapNode : list) {
             String id = parameterMapNode.getStringAttribute("id");
-            configuration.getParameterMaps().remove(namespace + "." + id);
+            configuration.getParameterMaps().remove(namespace + StringPool.DOT + id);
         }
     }
 
@@ -245,7 +246,7 @@ public class MybatisMapperRefresh implements Runnable {
         for (XNode resultMapNode : list) {
             String id = resultMapNode.getStringAttribute("id", resultMapNode.getValueBasedIdentifier());
             configuration.getResultMapNames().remove(id);
-            configuration.getResultMapNames().remove(namespace + "." + id);
+            configuration.getResultMapNames().remove(namespace + StringPool.DOT + id);
             clearResultMap(resultMapNode, namespace);
         }
     }
@@ -258,7 +259,7 @@ public class MybatisMapperRefresh implements Runnable {
                     configuration.getResultMapNames().remove(
                         resultChild.getStringAttribute("id", resultChild.getValueBasedIdentifier()));
                     configuration.getResultMapNames().remove(
-                        namespace + "." + resultChild.getStringAttribute("id", resultChild.getValueBasedIdentifier()));
+                        namespace + StringPool.DOT + resultChild.getStringAttribute("id", resultChild.getValueBasedIdentifier()));
                     if (resultChild.getChildren() != null && !resultChild.getChildren().isEmpty()) {
                         clearResultMap(resultChild, namespace);
                     }
@@ -277,7 +278,7 @@ public class MybatisMapperRefresh implements Runnable {
         for (XNode context : list) {
             String id = context.getStringAttribute("id");
             configuration.getKeyGeneratorNames().remove(id + SelectKeyGenerator.SELECT_KEY_SUFFIX);
-            configuration.getKeyGeneratorNames().remove(namespace + "." + id + SelectKeyGenerator.SELECT_KEY_SUFFIX);
+            configuration.getKeyGeneratorNames().remove(namespace + StringPool.DOT + id + SelectKeyGenerator.SELECT_KEY_SUFFIX);
         }
     }
 
@@ -291,7 +292,7 @@ public class MybatisMapperRefresh implements Runnable {
         for (XNode context : list) {
             String id = context.getStringAttribute("id");
             configuration.getSqlFragments().remove(id);
-            configuration.getSqlFragments().remove(namespace + "." + id);
+            configuration.getSqlFragments().remove(namespace + StringPool.DOT + id);
         }
     }
 

+ 5 - 4
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/spring/MybatisSqlSessionFactoryBean.java

@@ -69,6 +69,7 @@ import com.baomidou.mybatisplus.core.enums.IEnum;
 import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.GlobalConfigUtils;
+import com.baomidou.mybatisplus.core.toolkit.StringPool;
 import com.baomidou.mybatisplus.core.toolkit.sql.SqlHelper;
 import com.baomidou.mybatisplus.extension.toolkit.JdbcUtils;
 import com.baomidou.mybatisplus.extension.toolkit.PackageHelper;
@@ -442,12 +443,12 @@ public class MybatisSqlSessionFactoryBean implements FactoryBean<SqlSessionFacto
         if (hasLength(this.typeAliasesPackage)) {
             // TODO 支持自定义通配符
             List<String> typeAliasPackageList = new ArrayList<>();
-            if (typeAliasesPackage.contains("*") && !typeAliasesPackage.contains(",") && !typeAliasesPackage.contains(";")) {
+            if (typeAliasesPackage.contains(StringPool.ASTERISK) && !typeAliasesPackage.contains(StringPool.COMMA) && !typeAliasesPackage.contains(StringPool.SEMICOLON)) {
                 typeAliasPackageList.addAll(Arrays.asList(PackageHelper.convertTypeAliasesPackage(typeAliasesPackage)));
             } else {
                 String[] typeAliasPackageArray = tokenizeToStringArray(this.typeAliasesPackage, ConfigurableApplicationContext.CONFIG_LOCATION_DELIMITERS);
                 for (String one : typeAliasPackageArray) {
-                    if (one.contains("*")) {
+                    if (one.contains(StringPool.ASTERISK)) {
                         typeAliasPackageList.addAll(Arrays.asList(PackageHelper.convertTypeAliasesPackage(one)));
                     } else {
                         typeAliasPackageList.add(one);
@@ -469,8 +470,8 @@ public class MybatisSqlSessionFactoryBean implements FactoryBean<SqlSessionFacto
         // TODO 自定义枚举类扫描处理
         if (hasLength(this.typeEnumsPackage)) {
             Set<Class> classes;
-            if (typeEnumsPackage.contains("*") && !typeEnumsPackage.contains(",")
-                && !typeEnumsPackage.contains(";")) {
+            if (typeEnumsPackage.contains(StringPool.STAR) && !typeEnumsPackage.contains(StringPool.COMMA)
+                && !typeEnumsPackage.contains(StringPool.SEMICOLON)) {
                 classes = PackageHelper.scanTypePackage(typeEnumsPackage);
             } else {
                 String[] typeEnumsPackageArray = tokenizeToStringArray(this.typeEnumsPackage,

+ 3 - 1
mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/config/ConstVal.java

@@ -17,6 +17,8 @@ package com.baomidou.mybatisplus.generator.config;
 
 import java.nio.charset.Charset;
 
+import com.baomidou.mybatisplus.core.toolkit.StringPool;
+
 /**
  * <p>
  * 定义常量
@@ -45,7 +47,7 @@ public interface ConstVal {
     String UTF8 = Charset.forName("UTF-8").name();
     String UNDERLINE = "_";
 
-    String JAVA_SUFFIX = ".java";
+    String JAVA_SUFFIX = StringPool.DOT_JAVA;
     String KT_SUFFIX = ".kt";
     String XML_SUFFIX = ".xml";
 

+ 2 - 1
mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/config/PackageConfig.java

@@ -18,6 +18,7 @@ package com.baomidou.mybatisplus.generator.config;
 
 import java.util.Map;
 
+import com.baomidou.mybatisplus.core.toolkit.StringPool;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 
 import lombok.Data;
@@ -81,7 +82,7 @@ public class PackageConfig {
 
     public String getParent() {
         if (StringUtils.isNotEmpty(moduleName)) {
-            return parent + "." + moduleName;
+            return parent + StringPool.DOT + moduleName;
         }
         return parent;
     }

+ 7 - 6
mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/config/builder/ConfigBuilder.java

@@ -29,6 +29,7 @@ import java.util.Map;
 import java.util.Set;
 
 import com.baomidou.mybatisplus.annotation.DbType;
+import com.baomidou.mybatisplus.core.toolkit.StringPool;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.generator.InjectionConfig;
 import com.baomidou.mybatisplus.generator.config.ConstVal;
@@ -445,14 +446,14 @@ public class ConfigBuilder {
                 if (isInclude) {
                     StringBuilder sb = new StringBuilder(tablesSql);
                     sb.append(" AND ").append(dbQuery.tableName()).append(" IN (");
-                    Arrays.stream(config.getInclude()).forEach(tbname -> sb.append("'").append(tbname.toUpperCase()).append("',"));
-                    sb.replace(sb.length() - 1, sb.length(), ")");
+                    Arrays.stream(config.getInclude()).forEach(tbname -> sb.append(StringPool.SINGLE_QUOTE).append(tbname.toUpperCase()).append("',"));
+                    sb.replace(sb.length() - 1, sb.length(), StringPool.RIGHT_BRACKET);
                     tablesSql = sb.toString();
                 } else if (isExclude) {
                     StringBuilder sb = new StringBuilder(tablesSql);
                     sb.append(" AND ").append(dbQuery.tableName()).append(" NOT IN (");
-                    Arrays.stream(config.getExclude()).forEach(tbname -> sb.append("'").append(tbname.toUpperCase()).append("',"));
-                    sb.replace(sb.length() - 1, sb.length(), ")");
+                    Arrays.stream(config.getExclude()).forEach(tbname -> sb.append(StringPool.SINGLE_QUOTE).append(tbname.toUpperCase()).append("',"));
+                    sb.replace(sb.length() - 1, sb.length(), StringPool.RIGHT_BRACKET);
                     tablesSql = sb.toString();
                 }
             }
@@ -645,7 +646,7 @@ public class ConfigBuilder {
         if (!StringUtils.endsWith(parentDir, File.separator)) {
             parentDir += File.separator;
         }
-        packageName = packageName.replaceAll("\\.", "\\" + File.separator);
+        packageName = packageName.replaceAll("\\.", StringPool.BACK_SLASH + File.separator);
         return parentDir + packageName;
     }
 
@@ -663,7 +664,7 @@ public class ConfigBuilder {
         if (StringUtils.isEmpty(parent)) {
             return subPackage;
         }
-        return parent + "." + subPackage;
+        return parent + StringPool.DOT + subPackage;
     }
 
 

+ 6 - 5
mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/config/rules/NamingStrategy.java

@@ -17,6 +17,7 @@ package com.baomidou.mybatisplus.generator.config.rules;
 
 import java.util.Arrays;
 
+import com.baomidou.mybatisplus.core.toolkit.StringPool;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.generator.config.ConstVal;
 
@@ -40,7 +41,7 @@ public enum NamingStrategy {
         // 快速检查
         if (StringUtils.isEmpty(name)) {
             // 没必要转换
-            return "";
+            return StringPool.EMPTY;
         }
         String tempName = name;
         // 大写数字下划线组成转为小写 , 允许混合模式转为小写
@@ -75,13 +76,13 @@ public enum NamingStrategy {
      */
     public static String removePrefix(String name, String... prefix) {
         if (StringUtils.isEmpty(name)) {
-            return "";
+            return StringPool.EMPTY;
         }
         if (null != prefix) {
             // 判断是否有匹配的前缀,然后截取前缀
             // 删除前缀
             return Arrays.stream(prefix).filter(pf -> name.toLowerCase()
-                .matches("^" + pf.toLowerCase() + ".*"))
+                .matches(StringPool.HAT + pf.toLowerCase() + ".*"))
                 .findFirst().map(pf -> name.substring(pf.length())).orElse(name);
         }
         return name;
@@ -100,7 +101,7 @@ public enum NamingStrategy {
         if (null == prefix || StringUtils.isEmpty(name)) {
             return false;
         }
-        return Arrays.stream(prefix).anyMatch(pf -> name.toLowerCase().matches("^" + pf.toLowerCase() + ".*"));
+        return Arrays.stream(prefix).anyMatch(pf -> name.toLowerCase().matches(StringPool.HAT + pf.toLowerCase() + ".*"));
     }
 
     /**
@@ -128,7 +129,7 @@ public enum NamingStrategy {
         if (StringUtils.isNotEmpty(name)) {
             return name.substring(0, 1).toUpperCase() + name.substring(1);
         }
-        return "";
+        return StringPool.EMPTY;
     }
 
 }

+ 2 - 1
mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/engine/AbstractTemplateEngine.java

@@ -27,6 +27,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.StringPool;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.generator.InjectionConfig;
 import com.baomidou.mybatisplus.generator.config.ConstVal;
@@ -257,7 +258,7 @@ public abstract class AbstractTemplateEngine {
         if (StringUtils.isEmpty(classPath)) {
             return null;
         }
-        return classPath.substring(classPath.lastIndexOf(".") + 1);
+        return classPath.substring(classPath.lastIndexOf(StringPool.DOT) + 1);
     }
 
 

+ 2 - 1
mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/engine/FreemarkerTemplateEngine.java

@@ -15,6 +15,7 @@
  */
 package com.baomidou.mybatisplus.generator.engine;
 
+import com.baomidou.mybatisplus.core.toolkit.StringPool;
 import com.baomidou.mybatisplus.generator.config.ConstVal;
 import com.baomidou.mybatisplus.generator.config.builder.ConfigBuilder;
 
@@ -43,7 +44,7 @@ public class FreemarkerTemplateEngine extends AbstractTemplateEngine {
         super.init(configBuilder);
         configuration = new Configuration();
         configuration.setDefaultEncoding(ConstVal.UTF8);
-        configuration.setClassForTemplateLoading(FreemarkerTemplateEngine.class, "/");
+        configuration.setClassForTemplateLoading(FreemarkerTemplateEngine.class, StringPool.SLASH);
         return this;
     }
 

+ 3 - 2
mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/engine/VelocityTemplateEngine.java

@@ -26,6 +26,7 @@ import org.apache.velocity.VelocityContext;
 import org.apache.velocity.app.Velocity;
 import org.apache.velocity.app.VelocityEngine;
 
+import com.baomidou.mybatisplus.core.toolkit.StringPool;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.generator.config.ConstVal;
 import com.baomidou.mybatisplus.generator.config.builder.ConfigBuilder;
@@ -49,10 +50,10 @@ public class VelocityTemplateEngine extends AbstractTemplateEngine {
         if (null == velocityEngine) {
             Properties p = new Properties();
             p.setProperty(ConstVal.VM_LOAD_PATH_KEY, ConstVal.VM_LOAD_PATH_VALUE);
-            p.setProperty(Velocity.FILE_RESOURCE_LOADER_PATH, "");
+            p.setProperty(Velocity.FILE_RESOURCE_LOADER_PATH, StringPool.EMPTY);
             p.setProperty(Velocity.ENCODING_DEFAULT, ConstVal.UTF8);
             p.setProperty(Velocity.INPUT_ENCODING, ConstVal.UTF8);
-            p.setProperty("file.resource.loader.unicode", "true");
+            p.setProperty("file.resource.loader.unicode", StringPool.TRUE);
             velocityEngine = new VelocityEngine(p);
         }
         return this;

+ 2 - 1
mybatis-plus-generator/src/test/java/com/baomidou/mybatisplus/test/generator/PostgreSQLGenerator.java

@@ -6,6 +6,7 @@ import java.util.List;
 import java.util.Map;
 
 import com.baomidou.mybatisplus.annotation.DbType;
+import com.baomidou.mybatisplus.core.toolkit.StringPool;
 import com.baomidou.mybatisplus.generator.AutoGenerator;
 import com.baomidou.mybatisplus.generator.InjectionConfig;
 import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
@@ -125,7 +126,7 @@ public class PostgreSQLGenerator extends GeneratorTest {
             @Override
             public String outputFile(TableInfo tableInfo) {
                 // 自定义输入文件名称
-                return "D://test/my_" + tableInfo.getEntityName() + ".java";
+                return "D://test/my_" + tableInfo.getEntityName() + StringPool.DOT_JAVA;
             }
         });
         cfg.setFileOutConfigList(focList);

+ 2 - 1
mybatis-plus-generator/src/test/java/com/baomidou/mybatisplus/test/generator/SQLServerGenerator.java

@@ -6,6 +6,7 @@ import java.util.List;
 import java.util.Map;
 
 import com.baomidou.mybatisplus.annotation.DbType;
+import com.baomidou.mybatisplus.core.toolkit.StringPool;
 import com.baomidou.mybatisplus.generator.AutoGenerator;
 import com.baomidou.mybatisplus.generator.InjectionConfig;
 import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
@@ -119,7 +120,7 @@ public class SQLServerGenerator extends GeneratorTest {
             @Override
             public String outputFile(TableInfo tableInfo) {
                 // 自定义输入文件名称
-                return "D://my_" + tableInfo.getEntityName() + ".java";
+                return "D://my_" + tableInfo.getEntityName() + StringPool.DOT_JAVA;
             }
         });
         cfg.setFileOutConfigList(focList);

+ 0 - 1
mybatis-plus/src/test/java/com/baomidou/mybatisplus/test/h2/H2UserTest.java

@@ -8,7 +8,6 @@ import java.util.List;
 import java.util.Map;
 
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import org.junit.Assert;
 import org.junit.BeforeClass;
 import org.junit.Test;