Caratacus 6 лет назад
Родитель
Сommit
56dd70f067
33 измененных файлов с 243 добавлено и 220 удалено
  1. 1 1
      mybatis-plus-annotation/src/main/java/com/baomidou/mybatisplus/annotation/IdType.java
  2. 16 10
      mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/MybatisXMLConfigBuilder.java
  3. 1 1
      mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/conditions/AbstractWrapper.java
  4. 1 0
      mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/conditions/query/EmptyWrapper.java
  5. 4 4
      mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/conditions/segments/MergeSegments.java
  6. 5 5
      mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/conditions/update/LambdaUpdateWrapper.java
  7. 6 6
      mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/conditions/update/UpdateWrapper.java
  8. 1 1
      mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/enums/SqlKeyword.java
  9. 1 1
      mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/enums/WrapperKeyword.java
  10. 10 9
      mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/injector/AbstractMethod.java
  11. 17 11
      mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/metadata/TableFieldInfo.java
  12. 1 1
      mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/override/PageMapperProxyFactory.java
  13. 1 1
      mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/toolkit/EnumUtils.java
  14. 2 2
      mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/toolkit/Sequence.java
  15. 3 4
      mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/toolkit/StringUtils.java
  16. 4 4
      mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/toolkit/sql/SqlFormatter.java
  17. 1 1
      mybatis-plus-core/src/test/java/com/baomidou/mybatisplus/core/toolkit/condition/AbstractCondition.java
  18. 19 18
      mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/MybatisSqlSessionTemplate.java
  19. 31 19
      mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/plugins/IllegalSQLInterceptor.java
  20. 10 8
      mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/plugins/pagination/DialectModel.java
  21. 51 55
      mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/spring/MybatisMapperRefresh.java
  22. 1 1
      mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/config/converts/DB2TypeConvert.java
  23. 1 1
      mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/config/converts/MySqlTypeConvert.java
  24. 1 1
      mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/config/converts/PostgreSqlTypeConvert.java
  25. 1 1
      mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/config/converts/SqlServerTypeConvert.java
  26. 1 1
      mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/config/po/TableInfo.java
  27. 9 8
      mybatis-plus/src/test/java/com/baomidou/mybatisplus/test/SampleTest.java
  28. 2 2
      mybatis-plus/src/test/java/com/baomidou/mybatisplus/test/base/enums/TestEnum.java
  29. 2 2
      mybatis-plus/src/test/java/com/baomidou/mybatisplus/test/h2/H2StudentMapperTest.java
  30. 15 14
      mybatis-plus/src/test/java/com/baomidou/mybatisplus/test/h2/H2UserTest.java
  31. 2 2
      mybatis-plus/src/test/java/com/baomidou/mybatisplus/test/h2/entity/enums/AgeEnum.java
  32. 1 1
      mybatis-plus/src/test/java/com/baomidou/mybatisplus/test/h2/entity/enums/GenderEnum.java
  33. 21 24
      mybatis-plus/src/test/java/com/baomidou/mybatisplus/test/mysql/MysqlTestDataMapperTest.java

+ 1 - 1
mybatis-plus-annotation/src/main/java/com/baomidou/mybatisplus/annotation/IdType.java

@@ -55,7 +55,7 @@ public enum IdType {
      */
      */
     ID_WORKER_STR(5);
     ID_WORKER_STR(5);
 
 
-    private int key;
+    private final int key;
 
 
     IdType(int key) {
     IdType(int key) {
         this.key = key;
         this.key = key;

+ 16 - 10
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/MybatisXMLConfigBuilder.java

@@ -15,7 +15,14 @@
  */
  */
 package com.baomidou.mybatisplus.core;
 package com.baomidou.mybatisplus.core;
 
 
-import com.baomidou.mybatisplus.core.toolkit.StringPool;
+import java.io.InputStream;
+import java.io.Reader;
+import java.util.HashSet;
+import java.util.Properties;
+import java.util.Set;
+
+import javax.sql.DataSource;
+
 import org.apache.ibatis.builder.BaseBuilder;
 import org.apache.ibatis.builder.BaseBuilder;
 import org.apache.ibatis.builder.BuilderException;
 import org.apache.ibatis.builder.BuilderException;
 import org.apache.ibatis.builder.xml.XMLMapperBuilder;
 import org.apache.ibatis.builder.xml.XMLMapperBuilder;
@@ -37,17 +44,16 @@ import org.apache.ibatis.reflection.MetaClass;
 import org.apache.ibatis.reflection.ReflectorFactory;
 import org.apache.ibatis.reflection.ReflectorFactory;
 import org.apache.ibatis.reflection.factory.ObjectFactory;
 import org.apache.ibatis.reflection.factory.ObjectFactory;
 import org.apache.ibatis.reflection.wrapper.ObjectWrapperFactory;
 import org.apache.ibatis.reflection.wrapper.ObjectWrapperFactory;
-import org.apache.ibatis.session.*;
+import org.apache.ibatis.session.AutoMappingBehavior;
+import org.apache.ibatis.session.AutoMappingUnknownColumnBehavior;
+import org.apache.ibatis.session.Configuration;
+import org.apache.ibatis.session.ExecutorType;
+import org.apache.ibatis.session.LocalCacheScope;
 import org.apache.ibatis.transaction.TransactionFactory;
 import org.apache.ibatis.transaction.TransactionFactory;
 import org.apache.ibatis.type.JdbcType;
 import org.apache.ibatis.type.JdbcType;
 import org.apache.ibatis.type.TypeHandler;
 import org.apache.ibatis.type.TypeHandler;
 
 
-import javax.sql.DataSource;
-import java.io.InputStream;
-import java.io.Reader;
-import java.util.HashSet;
-import java.util.Properties;
-import java.util.Set;
+import com.baomidou.mybatisplus.core.toolkit.StringPool;
 
 
 /**
 /**
  * <p>
  * <p>
@@ -248,7 +254,7 @@ public class MybatisXMLConfigBuilder extends BaseBuilder {
         }
         }
     }
     }
 
 
-    private void settingsElement(Properties props) throws Exception {
+    private void settingsElement(Properties props) {
         configuration.setAutoMappingBehavior(AutoMappingBehavior.valueOf(props.getProperty("autoMappingBehavior", "PARTIAL")));
         configuration.setAutoMappingBehavior(AutoMappingBehavior.valueOf(props.getProperty("autoMappingBehavior", "PARTIAL")));
         configuration.setAutoMappingUnknownColumnBehavior(AutoMappingUnknownColumnBehavior.valueOf(props.getProperty("autoMappingUnknownColumnBehavior", "NONE")));
         configuration.setAutoMappingUnknownColumnBehavior(AutoMappingUnknownColumnBehavior.valueOf(props.getProperty("autoMappingUnknownColumnBehavior", "NONE")));
         configuration.setCacheEnabled(booleanValueOf(props.getProperty("cacheEnabled"), true));
         configuration.setCacheEnabled(booleanValueOf(props.getProperty("cacheEnabled"), true));
@@ -342,7 +348,7 @@ public class MybatisXMLConfigBuilder extends BaseBuilder {
         throw new BuilderException("Environment declaration requires a DataSourceFactory.");
         throw new BuilderException("Environment declaration requires a DataSourceFactory.");
     }
     }
 
 
-    private void typeHandlerElement(XNode parent) throws Exception {
+    private void typeHandlerElement(XNode parent) {
         if (parent != null) {
         if (parent != null) {
             for (XNode child : parent.getChildren()) {
             for (XNode child : parent.getChildren()) {
                 if ("package".equals(child.getName())) {
                 if ("package".equals(child.getName())) {

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

@@ -91,7 +91,7 @@ public abstract class AbstractWrapper<T, R, This extends AbstractWrapper<T, R, T
      */
      */
     protected AtomicInteger paramNameSeq;
     protected AtomicInteger paramNameSeq;
     protected Map<String, Object> paramNameValuePairs;
     protected Map<String, Object> paramNameValuePairs;
-    protected String paramAlias = null;
+    protected final String paramAlias = null;
     protected String lastSql = StringPool.EMPTY;
     protected String lastSql = StringPool.EMPTY;
     /**
     /**
      * 数据库表映射实体类
      * 数据库表映射实体类

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

@@ -82,6 +82,7 @@ public class EmptyWrapper<T> extends QueryWrapper<T> implements Serializable {
 
 
     }
     }
 
 
+    @SuppressWarnings("EmptyMethod")
     @Override
     @Override
     public String getParamAlias() {
     public String getParamAlias() {
         return super.getParamAlias();
         return super.getParamAlias();

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

@@ -35,10 +35,10 @@ import lombok.Getter;
 @SuppressWarnings("serial")
 @SuppressWarnings("serial")
 public class MergeSegments implements ISqlSegment {
 public class MergeSegments implements ISqlSegment {
 
 
-    private NormalSegmentList normal = new NormalSegmentList();
-    private GroupBySegmentList groupBy = new GroupBySegmentList();
-    private HavingSegmentList having = new HavingSegmentList();
-    private OrderBySegmentList orderBy = new OrderBySegmentList();
+    private final NormalSegmentList normal = new NormalSegmentList();
+    private final GroupBySegmentList groupBy = new GroupBySegmentList();
+    private final HavingSegmentList having = new HavingSegmentList();
+    private final OrderBySegmentList orderBy = new OrderBySegmentList();
 
 
     public void add(ISqlSegment... iSqlSegments) {
     public void add(ISqlSegment... iSqlSegments) {
         List<ISqlSegment> list = Arrays.asList(iSqlSegments);
         List<ISqlSegment> list = Arrays.asList(iSqlSegments);

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

@@ -15,16 +15,16 @@
  */
  */
 package com.baomidou.mybatisplus.core.conditions.update;
 package com.baomidou.mybatisplus.core.conditions.update;
 
 
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.atomic.AtomicInteger;
+
 import com.baomidou.mybatisplus.core.conditions.AbstractLambdaWrapper;
 import com.baomidou.mybatisplus.core.conditions.AbstractLambdaWrapper;
 import com.baomidou.mybatisplus.core.conditions.segments.MergeSegments;
 import com.baomidou.mybatisplus.core.conditions.segments.MergeSegments;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringPool;
 import com.baomidou.mybatisplus.core.toolkit.StringPool;
 import com.baomidou.mybatisplus.core.toolkit.support.SFunction;
 import com.baomidou.mybatisplus.core.toolkit.support.SFunction;
 
 
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.atomic.AtomicInteger;
-
 /**
 /**
  * <p>
  * <p>
  * Lambda 更新封装
  * Lambda 更新封装
@@ -39,7 +39,7 @@ public class LambdaUpdateWrapper<T> extends AbstractLambdaWrapper<T, LambdaUpdat
     /**
     /**
      * SQL 更新字段内容,例如:name='1',age=2
      * SQL 更新字段内容,例如:name='1',age=2
      */
      */
-    private List<String> sqlSet;
+    private final List<String> sqlSet;
 
 
     LambdaUpdateWrapper(T entity, List<String> sqlSet, AtomicInteger paramNameSeq,
     LambdaUpdateWrapper(T entity, List<String> sqlSet, AtomicInteger paramNameSeq,
                         Map<String, Object> paramNameValuePairs, MergeSegments mergeSegments) {
                         Map<String, Object> paramNameValuePairs, MergeSegments mergeSegments) {

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

@@ -15,16 +15,16 @@
  */
  */
 package com.baomidou.mybatisplus.core.conditions.update;
 package com.baomidou.mybatisplus.core.conditions.update;
 
 
-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 java.util.ArrayList;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
 import java.util.concurrent.atomic.AtomicInteger;
 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;
+
 /**
 /**
  * <p>
  * <p>
  * Update 条件封装
  * Update 条件封装
@@ -39,7 +39,7 @@ public class UpdateWrapper<T> extends AbstractWrapper<T, String, UpdateWrapper<T
     /**
     /**
      * SQL 更新字段内容,例如:name='1',age=2
      * SQL 更新字段内容,例如:name='1',age=2
      */
      */
-    private List<String> sqlSet;
+    private final List<String> sqlSet;
 
 
     public UpdateWrapper() {
     public UpdateWrapper() {
         // 如果无参构造函数,请注意实体 NULL 情况 SET 必须有否则 SQL 异常
         // 如果无参构造函数,请注意实体 NULL 情况 SET 必须有否则 SQL 异常

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

@@ -49,7 +49,7 @@ public enum SqlKeyword implements ISqlSegment {
     ASC("ASC"),
     ASC("ASC"),
     DESC("DESC");
     DESC("DESC");
 
 
-    private String keyword;
+    private final String keyword;
 
 
     SqlKeyword(final String keyword) {
     SqlKeyword(final String keyword) {
         this.keyword = keyword;
         this.keyword = keyword;

+ 1 - 1
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/enums/WrapperKeyword.java

@@ -19,7 +19,7 @@ public enum WrapperKeyword implements ISqlSegment {
     LEFT_BRACKET(StringPool.LEFT_BRACKET),
     LEFT_BRACKET(StringPool.LEFT_BRACKET),
     RIGHT_BRACKET(StringPool.RIGHT_BRACKET);
     RIGHT_BRACKET(StringPool.RIGHT_BRACKET);
 
 
-    private String keyword;
+    private final String keyword;
 
 
     WrapperKeyword(final String keyword) {
     WrapperKeyword(final String keyword) {
         this.keyword = keyword;
         this.keyword = keyword;

+ 10 - 9
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/injector/AbstractMethod.java

@@ -15,11 +15,11 @@
  */
  */
 package com.baomidou.mybatisplus.core.injector;
 package com.baomidou.mybatisplus.core.injector;
 
 
-import com.baomidou.mybatisplus.core.metadata.TableInfo;
-import com.baomidou.mybatisplus.core.toolkit.ArrayUtils;
-import com.baomidou.mybatisplus.core.toolkit.Constants;
-import com.baomidou.mybatisplus.core.toolkit.TableInfoHelper;
-import com.baomidou.mybatisplus.core.toolkit.sql.SqlScriptUtils;
+import java.lang.reflect.ParameterizedType;
+import java.lang.reflect.Type;
+import java.lang.reflect.TypeVariable;
+import java.lang.reflect.WildcardType;
+
 import org.apache.ibatis.builder.MapperBuilderAssistant;
 import org.apache.ibatis.builder.MapperBuilderAssistant;
 import org.apache.ibatis.executor.keygen.KeyGenerator;
 import org.apache.ibatis.executor.keygen.KeyGenerator;
 import org.apache.ibatis.executor.keygen.NoKeyGenerator;
 import org.apache.ibatis.executor.keygen.NoKeyGenerator;
@@ -30,10 +30,11 @@ import org.apache.ibatis.mapping.StatementType;
 import org.apache.ibatis.scripting.LanguageDriver;
 import org.apache.ibatis.scripting.LanguageDriver;
 import org.apache.ibatis.session.Configuration;
 import org.apache.ibatis.session.Configuration;
 
 
-import java.lang.reflect.ParameterizedType;
-import java.lang.reflect.Type;
-import java.lang.reflect.TypeVariable;
-import java.lang.reflect.WildcardType;
+import com.baomidou.mybatisplus.core.metadata.TableInfo;
+import com.baomidou.mybatisplus.core.toolkit.ArrayUtils;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
+import com.baomidou.mybatisplus.core.toolkit.TableInfoHelper;
+import com.baomidou.mybatisplus.core.toolkit.sql.SqlScriptUtils;
 
 
 /**
 /**
  * <p>
  * <p>

+ 17 - 11
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/metadata/TableFieldInfo.java

@@ -15,18 +15,24 @@
  */
  */
 package com.baomidou.mybatisplus.core.metadata;
 package com.baomidou.mybatisplus.core.metadata;
 
 
-import com.baomidou.mybatisplus.annotation.*;
+import java.lang.reflect.Field;
+
+import com.baomidou.mybatisplus.annotation.DbType;
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.FieldStrategy;
+import com.baomidou.mybatisplus.annotation.SqlCondition;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableLogic;
 import com.baomidou.mybatisplus.core.config.GlobalConfig;
 import com.baomidou.mybatisplus.core.config.GlobalConfig;
 import com.baomidou.mybatisplus.core.toolkit.Constants;
 import com.baomidou.mybatisplus.core.toolkit.Constants;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.TableInfoHelper;
 import com.baomidou.mybatisplus.core.toolkit.TableInfoHelper;
 import com.baomidou.mybatisplus.core.toolkit.sql.SqlScriptUtils;
 import com.baomidou.mybatisplus.core.toolkit.sql.SqlScriptUtils;
 import com.baomidou.mybatisplus.core.toolkit.sql.SqlUtils;
 import com.baomidou.mybatisplus.core.toolkit.sql.SqlUtils;
+
 import lombok.AccessLevel;
 import lombok.AccessLevel;
 import lombok.Getter;
 import lombok.Getter;
 
 
-import java.lang.reflect.Field;
-
 /**
 /**
  * <p>
  * <p>
  * 数据库表字段反射信息
  * 数据库表字段反射信息
@@ -42,7 +48,7 @@ public class TableFieldInfo implements Constants {
      * 是否有存在字段名与属性名关联
      * 是否有存在字段名与属性名关联
      * true: 表示要进行 as
      * true: 表示要进行 as
      */
      */
-    private boolean related;
+    private final boolean related;
     /**
     /**
      * 是否进行 select 查询
      * 是否进行 select 查询
      * 大字段可设置为 false 不加入 select 查询范围
      * 大字段可设置为 false 不加入 select 查询范围
@@ -51,27 +57,27 @@ public class TableFieldInfo implements Constants {
     /**
     /**
      * 字段名
      * 字段名
      */
      */
-    private String column;
+    private final String column;
     /**
     /**
      * 属性名
      * 属性名
      */
      */
-    private String property;
+    private final String property;
     /**
     /**
      * 属性表达式#{property}, 可以指定jdbcType, typeHandler等
      * 属性表达式#{property}, 可以指定jdbcType, typeHandler等
      */
      */
-    private String el;
+    private final String el;
     /**
     /**
      * 属性类型
      * 属性类型
      */
      */
-    private Class<?> propertyType;
+    private final Class<?> propertyType;
     /**
     /**
      * 属性是否是 CharSequence 类型
      * 属性是否是 CharSequence 类型
      */
      */
-    private boolean isCharSequence;
+    private final boolean isCharSequence;
     /**
     /**
      * 字段策略【 默认,自判断 null 】
      * 字段策略【 默认,自判断 null 】
      */
      */
-    private FieldStrategy fieldStrategy;
+    private final FieldStrategy fieldStrategy;
     /**
     /**
      * 逻辑删除值
      * 逻辑删除值
      */
      */
@@ -95,7 +101,7 @@ public class TableFieldInfo implements Constants {
     /**
     /**
      * 标记该字段属于哪个类
      * 标记该字段属于哪个类
      */
      */
-    private Class<?> clazz;
+    private final Class<?> clazz;
     /**
     /**
      * 缓存 sql select
      * 缓存 sql select
      */
      */

+ 1 - 1
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/override/PageMapperProxyFactory.java

@@ -54,7 +54,7 @@ public class PageMapperProxyFactory<T> {
     }
     }
 
 
     public T newInstance(SqlSession sqlSession) {
     public T newInstance(SqlSession sqlSession) {
-        final PageMapperProxy<T> mapperProxy = new PageMapperProxy<T>(sqlSession, mapperInterface, methodCache);
+        final PageMapperProxy<T> mapperProxy = new PageMapperProxy<>(sqlSession, mapperInterface, methodCache);
         return newInstance(mapperProxy);
         return newInstance(mapperProxy);
     }
     }
 }
 }

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

@@ -58,7 +58,7 @@ public class EnumUtils {
                 if (Objects.equals(enumField.get(e), value)) {
                 if (Objects.equals(enumField.get(e), value)) {
                     return e;
                     return e;
                 }
                 }
-            } catch (IllegalAccessException e1) {
+            } catch (IllegalAccessException ignored) {
 
 
             }
             }
         }
         }

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

@@ -58,12 +58,12 @@ public class Sequence {
     private final long timestampLeftShift = sequenceBits + workerIdBits + datacenterIdBits;
     private final long timestampLeftShift = sequenceBits + workerIdBits + datacenterIdBits;
     private final long sequenceMask = -1L ^ (-1L << sequenceBits);
     private final long sequenceMask = -1L ^ (-1L << sequenceBits);
 
 
-    private long workerId;
+    private final long workerId;
 
 
     /**
     /**
      * 数据标识 ID 部分
      * 数据标识 ID 部分
      */
      */
-    private long datacenterId;
+    private final long datacenterId;
     /**
     /**
      * 并发控制
      * 并发控制
      */
      */

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

@@ -15,7 +15,7 @@
  */
  */
 package com.baomidou.mybatisplus.core.toolkit;
 package com.baomidou.mybatisplus.core.toolkit;
 
 
-import com.baomidou.mybatisplus.core.toolkit.sql.StringEscape;
+import static java.util.stream.Collectors.joining;
 
 
 import java.nio.charset.StandardCharsets;
 import java.nio.charset.StandardCharsets;
 import java.sql.Blob;
 import java.sql.Blob;
@@ -25,7 +25,7 @@ import java.util.Collections;
 import java.util.List;
 import java.util.List;
 import java.util.regex.Pattern;
 import java.util.regex.Pattern;
 
 
-import static java.util.stream.Collectors.joining;
+import com.baomidou.mybatisplus.core.toolkit.sql.StringEscape;
 
 
 /**
 /**
  * <p>
  * <p>
@@ -759,8 +759,7 @@ public class StringUtils {
         StringBuilder buf = new StringBuilder();
         StringBuilder buf = new StringBuilder();
         char previousChar = ' ';
         char previousChar = ' ';
         char[] chars = input.toCharArray();
         char[] chars = input.toCharArray();
-        for (int i = 0; i < chars.length; i++) {
-            char c = chars[i];
+        for (char c : chars) {
             boolean isUpperCaseAndPreviousIsUpperCase = (Character.isUpperCase(previousChar)) && (Character.isUpperCase(c));
             boolean isUpperCaseAndPreviousIsUpperCase = (Character.isUpperCase(previousChar)) && (Character.isUpperCase(c));
             boolean isUpperCaseAndPreviousIsLowerCase = (Character.isLowerCase(previousChar)) && (Character.isUpperCase(c));
             boolean isUpperCaseAndPreviousIsLowerCase = (Character.isLowerCase(previousChar)) && (Character.isUpperCase(c));
 
 

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

@@ -88,13 +88,13 @@ public class SqlFormatter {
         boolean afterInsert;
         boolean afterInsert;
         int inFunction;
         int inFunction;
         int parensSinceSelect;
         int parensSinceSelect;
-        private LinkedList<Integer> parenCounts = new LinkedList<>();
-        private LinkedList<Boolean> afterByOrFromOrSelects = new LinkedList<>();
+        private final LinkedList<Integer> parenCounts = new LinkedList<>();
+        private final LinkedList<Boolean> afterByOrFromOrSelects = new LinkedList<>();
 
 
         int indent = 1;
         int indent = 1;
 
 
-        StringBuilder result = new StringBuilder();
-        StringTokenizer tokens;
+        final StringBuilder result = new StringBuilder();
+        final StringTokenizer tokens;
         String lastToken;
         String lastToken;
         String token;
         String token;
         String lcToken;
         String lcToken;

+ 1 - 1
mybatis-plus-core/src/test/java/com/baomidou/mybatisplus/core/toolkit/condition/AbstractCondition.java

@@ -9,7 +9,7 @@ package com.baomidou.mybatisplus.core.toolkit.condition;
 public abstract class AbstractCondition<This, CLASS, COLUMN>
 public abstract class AbstractCondition<This, CLASS, COLUMN>
     implements ICondition<This, CLASS, COLUMN> {
     implements ICondition<This, CLASS, COLUMN> {
 
 
-    private StringBuilder sb = new StringBuilder();
+    private final StringBuilder sb = new StringBuilder();
 
 
     @Override
     @Override
     public This eq(COLUMN column, Object value) {
     public This eq(COLUMN column, Object value) {

+ 19 - 18
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/MybatisSqlSessionTemplate.java

@@ -15,14 +15,7 @@
  */
  */
 package com.baomidou.mybatisplus.extension;
 package com.baomidou.mybatisplus.extension;
 
 
-import com.baomidou.mybatisplus.core.toolkit.ExceptionUtils;
-import org.apache.ibatis.cursor.Cursor;
-import org.apache.ibatis.executor.BatchResult;
-import org.apache.ibatis.session.*;
-import org.mybatis.spring.MyBatisExceptionTranslator;
-import org.springframework.beans.factory.DisposableBean;
-import org.springframework.dao.support.PersistenceExceptionTranslator;
-import org.springframework.util.Assert;
+import static java.lang.reflect.Proxy.newProxyInstance;
 
 
 import java.lang.reflect.InvocationHandler;
 import java.lang.reflect.InvocationHandler;
 import java.lang.reflect.Method;
 import java.lang.reflect.Method;
@@ -30,7 +23,20 @@ import java.sql.Connection;
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
 
 
-import static java.lang.reflect.Proxy.newProxyInstance;
+import org.apache.ibatis.cursor.Cursor;
+import org.apache.ibatis.executor.BatchResult;
+import org.apache.ibatis.session.Configuration;
+import org.apache.ibatis.session.ExecutorType;
+import org.apache.ibatis.session.ResultHandler;
+import org.apache.ibatis.session.RowBounds;
+import org.apache.ibatis.session.SqlSession;
+import org.apache.ibatis.session.SqlSessionFactory;
+import org.mybatis.spring.MyBatisExceptionTranslator;
+import org.springframework.beans.factory.DisposableBean;
+import org.springframework.dao.support.PersistenceExceptionTranslator;
+import org.springframework.util.Assert;
+
+import com.baomidou.mybatisplus.core.toolkit.ExceptionUtils;
 
 
 /**
 /**
  * Copy SqlSessionTemplate
  * Copy SqlSessionTemplate
@@ -373,7 +379,7 @@ public class MybatisSqlSessionTemplate implements SqlSession, DisposableBean {
      * @see org.springframework.beans.factory.support.DisposableBeanAdapter#CLOSE_METHOD_NAME
      * @see org.springframework.beans.factory.support.DisposableBeanAdapter#CLOSE_METHOD_NAME
      */
      */
     @Override
     @Override
-    public void destroy() throws Exception {
+    public void destroy() {
         // This method forces spring disposer to avoid call of
         // This method forces spring disposer to avoid call of
         // SqlSessionTemplate.close() which gives UnsupportedOperationException
         // SqlSessionTemplate.close() which gives UnsupportedOperationException
     }
     }
@@ -388,19 +394,14 @@ public class MybatisSqlSessionTemplate implements SqlSession, DisposableBean {
     private class SqlSessionInterceptor implements InvocationHandler {
     private class SqlSessionInterceptor implements InvocationHandler {
 
 
         @Override
         @Override
-        public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
-            SqlSession sqlSession = MybatisSqlSessionTemplate.this.sqlSessionFactory
-                .openSession(MybatisSqlSessionTemplate.this.executorType);
-            try {
+        public Object invoke(Object proxy, Method method, Object[] args) {
+            try (SqlSession sqlSession = MybatisSqlSessionTemplate.this.sqlSessionFactory
+                .openSession(MybatisSqlSessionTemplate.this.executorType)) {
                 Object result = method.invoke(sqlSession, args);
                 Object result = method.invoke(sqlSession, args);
                 sqlSession.commit(true);
                 sqlSession.commit(true);
                 return result;
                 return result;
             } catch (Throwable t) {
             } catch (Throwable t) {
                 throw ExceptionUtils.mpe(t);
                 throw ExceptionUtils.mpe(t);
-            } finally {
-                if (sqlSession != null) {
-                    sqlSession.close();
-                }
             }
             }
         }
         }
     }
     }

+ 31 - 19
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/plugins/IllegalSQLInterceptor.java

@@ -1,10 +1,38 @@
 package com.baomidou.mybatisplus.extension.plugins;
 package com.baomidou.mybatisplus.extension.plugins;
 
 
+import java.sql.Connection;
+import java.sql.DatabaseMetaData;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Properties;
+import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
+
+import org.apache.ibatis.executor.statement.StatementHandler;
+import org.apache.ibatis.logging.Log;
+import org.apache.ibatis.logging.LogFactory;
+import org.apache.ibatis.mapping.BoundSql;
+import org.apache.ibatis.mapping.MappedStatement;
+import org.apache.ibatis.mapping.SqlCommandType;
+import org.apache.ibatis.plugin.Interceptor;
+import org.apache.ibatis.plugin.Intercepts;
+import org.apache.ibatis.plugin.Invocation;
+import org.apache.ibatis.plugin.Plugin;
+import org.apache.ibatis.plugin.Signature;
+import org.apache.ibatis.reflection.MetaObject;
+import org.apache.ibatis.reflection.SystemMetaObject;
+
 import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
 import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
 import com.baomidou.mybatisplus.core.parser.SqlParserHelper;
 import com.baomidou.mybatisplus.core.parser.SqlParserHelper;
 import com.baomidou.mybatisplus.core.toolkit.EncryptUtils;
 import com.baomidou.mybatisplus.core.toolkit.EncryptUtils;
 import com.baomidou.mybatisplus.core.toolkit.PluginUtils;
 import com.baomidou.mybatisplus.core.toolkit.PluginUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+
 import lombok.Data;
 import lombok.Data;
 import net.sf.jsqlparser.expression.BinaryExpression;
 import net.sf.jsqlparser.expression.BinaryExpression;
 import net.sf.jsqlparser.expression.Expression;
 import net.sf.jsqlparser.expression.Expression;
@@ -22,22 +50,6 @@ import net.sf.jsqlparser.statement.select.PlainSelect;
 import net.sf.jsqlparser.statement.select.Select;
 import net.sf.jsqlparser.statement.select.Select;
 import net.sf.jsqlparser.statement.select.SubSelect;
 import net.sf.jsqlparser.statement.select.SubSelect;
 import net.sf.jsqlparser.statement.update.Update;
 import net.sf.jsqlparser.statement.update.Update;
-import org.apache.ibatis.executor.statement.StatementHandler;
-import org.apache.ibatis.logging.Log;
-import org.apache.ibatis.logging.LogFactory;
-import org.apache.ibatis.mapping.BoundSql;
-import org.apache.ibatis.mapping.MappedStatement;
-import org.apache.ibatis.mapping.SqlCommandType;
-import org.apache.ibatis.plugin.*;
-import org.apache.ibatis.reflection.MetaObject;
-import org.apache.ibatis.reflection.SystemMetaObject;
-
-import java.sql.Connection;
-import java.sql.DatabaseMetaData;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.util.*;
-import java.util.concurrent.ConcurrentHashMap;
 
 
 /**
 /**
  * @author willenfoo
  * @author willenfoo
@@ -78,7 +90,7 @@ public class IllegalSQLInterceptor implements Interceptor {
     /**
     /**
      * 缓存表的索引信息
      * 缓存表的索引信息
      */
      */
-    private static Map<String, List<IndexInfo>> indexInfoMap = new ConcurrentHashMap<>();
+    private static final Map<String, List<IndexInfo>> indexInfoMap = new ConcurrentHashMap<>();
 
 
     /**
     /**
      * 验证expression对象是不是 or、not等等
      * 验证expression对象是不是 or、not等等
@@ -148,7 +160,7 @@ public class IllegalSQLInterceptor implements Interceptor {
         String tableInfo = table.getName();
         String tableInfo = table.getName();
         //表存在的索引
         //表存在的索引
         String dbName = null;
         String dbName = null;
-        String tableName = null;
+        String tableName;
         String[] tableArray = tableInfo.split("\\.");
         String[] tableArray = tableInfo.split("\\.");
         if (tableArray.length == 1) {
         if (tableArray.length == 1) {
             tableName = tableArray[0];
             tableName = tableArray[0];
@@ -248,7 +260,7 @@ public class IllegalSQLInterceptor implements Interceptor {
             indexInfos = indexInfoMap.get(key);
             indexInfos = indexInfoMap.get(key);
         }
         }
         if (indexInfos == null || indexInfos.isEmpty()) {
         if (indexInfos == null || indexInfos.isEmpty()) {
-            ResultSet rs = null;
+            ResultSet rs;
             try {
             try {
                 DatabaseMetaData metadata = conn.getMetaData();
                 DatabaseMetaData metadata = conn.getMetaData();
                 rs = metadata.getIndexInfo(dbName, dbName, tableName, false, true);
                 rs = metadata.getIndexInfo(dbName, dbName, tableName, false, true);

+ 10 - 8
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/plugins/pagination/DialectModel.java

@@ -1,15 +1,17 @@
 package com.baomidou.mybatisplus.extension.plugins.pagination;
 package com.baomidou.mybatisplus.extension.plugins.pagination;
 
 
-import com.baomidou.mybatisplus.core.toolkit.Assert;
-import lombok.Getter;
-import org.apache.ibatis.mapping.ParameterMapping;
-import org.apache.ibatis.session.Configuration;
-
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
 import java.util.function.Consumer;
 import java.util.function.Consumer;
 import java.util.function.Function;
 import java.util.function.Function;
 
 
+import org.apache.ibatis.mapping.ParameterMapping;
+import org.apache.ibatis.session.Configuration;
+
+import com.baomidou.mybatisplus.core.toolkit.Assert;
+
+import lombok.Getter;
+
 /**
 /**
  * 分页参数动态化所需 model
  * 分页参数动态化所需 model
  *
  *
@@ -24,7 +26,7 @@ public class DialectModel {
      * 分页方言 sql
      * 分页方言 sql
      */
      */
     @Getter
     @Getter
-    private String dialectSql;
+    private final String dialectSql;
     /**
     /**
      * 提供 Configuration
      * 提供 Configuration
      */
      */
@@ -52,11 +54,11 @@ public class DialectModel {
     /**
     /**
      * 提供 第一个值
      * 提供 第一个值
      */
      */
-    private long firstParam;
+    private final long firstParam;
     /**
     /**
      * 提供 第二个值
      * 提供 第二个值
      */
      */
-    private long secondParam;
+    private final long secondParam;
 
 
     public DialectModel(String dialectSql, long firstParam, long secondParam) {
     public DialectModel(String dialectSql, long firstParam, long secondParam) {
         this.dialectSql = dialectSql;
         this.dialectSql = dialectSql;

+ 51 - 55
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/spring/MybatisMapperRefresh.java

@@ -65,14 +65,14 @@ public class MybatisMapperRefresh implements Runnable {
      * 记录jar包存在的mapper
      * 记录jar包存在的mapper
      */
      */
     private static final Map<String, List<Resource>> JAR_MAPPER = new HashMap<>();
     private static final Map<String, List<Resource>> JAR_MAPPER = new HashMap<>();
-    private SqlSessionFactory sqlSessionFactory;
-    private Resource[] mapperLocations;
+    private final SqlSessionFactory sqlSessionFactory;
+    private final Resource[] mapperLocations;
     private Long beforeTime = 0L;
     private Long beforeTime = 0L;
     private Configuration configuration;
     private Configuration configuration;
     /**
     /**
      * 是否开启刷新mapper
      * 是否开启刷新mapper
      */
      */
-    private boolean enabled;
+    private final boolean enabled;
     /**
     /**
      * xml文件目录
      * xml文件目录
      */
      */
@@ -114,71 +114,67 @@ public class MybatisMapperRefresh implements Runnable {
         if (enabled) {
         if (enabled) {
             beforeTime = SystemClock.now();
             beforeTime = SystemClock.now();
             final MybatisMapperRefresh runnable = this;
             final MybatisMapperRefresh runnable = this;
-            new Thread(new Runnable() {
-
-                @Override
-                public void run() {
-                    if (fileSet == null) {
-                        fileSet = new HashSet<>();
-                        if (mapperLocations != null) {
-                            for (Resource mapperLocation : mapperLocations) {
-                                try {
-                                    if (ResourceUtils.isJarURL(mapperLocation.getURL())) {
-                                        String key = new UrlResource(ResourceUtils.extractJarFileURL(mapperLocation.getURL()))
-                                            .getFile().getPath();
-                                        fileSet.add(key);
-                                        if (JAR_MAPPER.get(key) != null) {
-                                            JAR_MAPPER.get(key).add(mapperLocation);
-                                        } else {
-                                            List<Resource> resourcesList = new ArrayList<>();
-                                            resourcesList.add(mapperLocation);
-                                            JAR_MAPPER.put(key, resourcesList);
-                                        }
+            new Thread(() -> {
+                if (fileSet == null) {
+                    fileSet = new HashSet<>();
+                    if (mapperLocations != null) {
+                        for (Resource mapperLocation : mapperLocations) {
+                            try {
+                                if (ResourceUtils.isJarURL(mapperLocation.getURL())) {
+                                    String key = new UrlResource(ResourceUtils.extractJarFileURL(mapperLocation.getURL()))
+                                        .getFile().getPath();
+                                    fileSet.add(key);
+                                    if (JAR_MAPPER.get(key) != null) {
+                                        JAR_MAPPER.get(key).add(mapperLocation);
                                     } else {
                                     } else {
-                                        fileSet.add(mapperLocation.getFile().getPath());
+                                        List<Resource> resourcesList = new ArrayList<>();
+                                        resourcesList.add(mapperLocation);
+                                        JAR_MAPPER.put(key, resourcesList);
                                     }
                                     }
-                                } catch (IOException ioException) {
-                                    ioException.printStackTrace();
+                                } else {
+                                    fileSet.add(mapperLocation.getFile().getPath());
                                 }
                                 }
+                            } catch (IOException ioException) {
+                                ioException.printStackTrace();
                             }
                             }
                         }
                         }
                     }
                     }
+                }
+                try {
+                    Thread.sleep(delaySeconds * 1000);
+                } catch (InterruptedException interruptedException) {
+                    interruptedException.printStackTrace();
+                }
+                do {
                     try {
                     try {
-                        Thread.sleep(delaySeconds * 1000);
-                    } catch (InterruptedException interruptedException) {
-                        interruptedException.printStackTrace();
-                    }
-                    do {
-                        try {
-                            for (String filePath : fileSet) {
-                                File file = new File(filePath);
-                                if (file.isFile() && file.lastModified() > beforeTime) {
-                                    globalConfig.setRefresh(true);
-                                    List<Resource> removeList = JAR_MAPPER.get(filePath);
-                                    if (removeList != null && !removeList.isEmpty()) {
-                                        for (Resource resource : removeList) {
-                                            runnable.refresh(resource);
-                                        }
-                                    } else {
-                                        runnable.refresh(new FileSystemResource(file));
+                        for (String filePath : fileSet) {
+                            File file = new File(filePath);
+                            if (file.isFile() && file.lastModified() > beforeTime) {
+                                globalConfig.setRefresh(true);
+                                List<Resource> removeList = JAR_MAPPER.get(filePath);
+                                if (removeList != null && !removeList.isEmpty()) {
+                                    for (Resource resource : removeList) {
+                                        runnable.refresh(resource);
                                     }
                                     }
+                                } else {
+                                    runnable.refresh(new FileSystemResource(file));
                                 }
                                 }
                             }
                             }
-                            if (globalConfig.isRefresh()) {
-                                beforeTime = SystemClock.now();
-                            }
-                            globalConfig.setRefresh(true);
-                        } catch (Exception exception) {
-                            exception.printStackTrace();
                         }
                         }
-                        try {
-                            Thread.sleep(sleepSeconds * 1000);
-                        } catch (InterruptedException interruptedException) {
-                            interruptedException.printStackTrace();
+                        if (globalConfig.isRefresh()) {
+                            beforeTime = SystemClock.now();
                         }
                         }
+                        globalConfig.setRefresh(true);
+                    } catch (Exception exception) {
+                        exception.printStackTrace();
+                    }
+                    try {
+                        Thread.sleep(sleepSeconds * 1000);
+                    } catch (InterruptedException interruptedException) {
+                        interruptedException.printStackTrace();
+                    }
 
 
-                    } while (true);
-                }
+                } while (true);
             }, "mybatis-plus MapperRefresh").start();
             }, "mybatis-plus MapperRefresh").start();
         }
         }
     }
     }

+ 1 - 1
mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/config/converts/DB2TypeConvert.java

@@ -33,7 +33,7 @@ public class DB2TypeConvert implements ITypeConvert {
     @Override
     @Override
     public IColumnType processTypeConvert(GlobalConfig globalConfig, String fieldType) {
     public IColumnType processTypeConvert(GlobalConfig globalConfig, String fieldType) {
         String t = fieldType.toLowerCase();
         String t = fieldType.toLowerCase();
-        if (t.contains("char") || t.contains("text")) {
+        if (t.contains("char")) {
             return DbColumnType.STRING;
             return DbColumnType.STRING;
         } else if (t.contains("bigint")) {
         } else if (t.contains("bigint")) {
             return DbColumnType.LONG;
             return DbColumnType.LONG;

+ 1 - 1
mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/config/converts/MySqlTypeConvert.java

@@ -33,7 +33,7 @@ public class MySqlTypeConvert implements ITypeConvert {
     @Override
     @Override
     public IColumnType processTypeConvert(GlobalConfig globalConfig, String fieldType) {
     public IColumnType processTypeConvert(GlobalConfig globalConfig, String fieldType) {
         String t = fieldType.toLowerCase();
         String t = fieldType.toLowerCase();
-        if (t.contains("char") || t.contains("text")) {
+        if (t.contains("char")) {
             return DbColumnType.STRING;
             return DbColumnType.STRING;
         } else if (t.contains("bigint")) {
         } else if (t.contains("bigint")) {
             return DbColumnType.LONG;
             return DbColumnType.LONG;

+ 1 - 1
mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/config/converts/PostgreSqlTypeConvert.java

@@ -33,7 +33,7 @@ public class PostgreSqlTypeConvert implements ITypeConvert {
     @Override
     @Override
     public IColumnType processTypeConvert(GlobalConfig globalConfig, String fieldType) {
     public IColumnType processTypeConvert(GlobalConfig globalConfig, String fieldType) {
         String t = fieldType.toLowerCase();
         String t = fieldType.toLowerCase();
-        if (t.contains("char") || t.contains("text")) {
+        if (t.contains("char")) {
             return DbColumnType.STRING;
             return DbColumnType.STRING;
         } else if (t.contains("bigint")) {
         } else if (t.contains("bigint")) {
             return DbColumnType.LONG;
             return DbColumnType.LONG;

+ 1 - 1
mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/config/converts/SqlServerTypeConvert.java

@@ -33,7 +33,7 @@ public class SqlServerTypeConvert implements ITypeConvert {
     @Override
     @Override
     public IColumnType processTypeConvert(GlobalConfig globalConfig, String fieldType) {
     public IColumnType processTypeConvert(GlobalConfig globalConfig, String fieldType) {
         String t = fieldType.toLowerCase();
         String t = fieldType.toLowerCase();
-        if (t.contains("char") || t.contains("text") || t.contains("xml")) {
+        if (t.contains("char") || t.contains("xml")) {
             return DbColumnType.STRING;
             return DbColumnType.STRING;
         } else if (t.contains("bigint")) {
         } else if (t.contains("bigint")) {
             return DbColumnType.LONG;
             return DbColumnType.LONG;

+ 1 - 1
mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/config/po/TableInfo.java

@@ -50,7 +50,7 @@ public class TableInfo {
      * 公共字段
      * 公共字段
      */
      */
     private List<TableField> commonFields;
     private List<TableField> commonFields;
-    private Set<String> importPackages = new HashSet<>();
+    private final Set<String> importPackages = new HashSet<>();
     private String fieldNames;
     private String fieldNames;
 
 
     public boolean isConvert() {
     public boolean isConvert() {

+ 9 - 8
mybatis-plus/src/test/java/com/baomidou/mybatisplus/test/SampleTest.java

@@ -1,15 +1,16 @@
 package com.baomidou.mybatisplus.test;
 package com.baomidou.mybatisplus.test;
 
 
-import com.baomidou.mybatisplus.core.conditions.Condition;
+import org.apache.ibatis.reflection.DefaultReflectorFactory;
+import org.apache.ibatis.reflection.MetaClass;
+import org.junit.Test;
+
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.TableInfo;
 import com.baomidou.mybatisplus.core.metadata.TableInfo;
 import com.baomidou.mybatisplus.core.toolkit.TableInfoHelper;
 import com.baomidou.mybatisplus.core.toolkit.TableInfoHelper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.test.base.entity.CommonData;
 import com.baomidou.mybatisplus.test.base.entity.CommonData;
 import com.baomidou.mybatisplus.test.base.entity.CommonLogicData;
 import com.baomidou.mybatisplus.test.base.entity.CommonLogicData;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.ObjectMapper;
-import org.apache.ibatis.reflection.DefaultReflectorFactory;
-import org.apache.ibatis.reflection.MetaClass;
-import org.junit.Test;
 
 
 public class SampleTest {
 public class SampleTest {
 
 
@@ -38,13 +39,13 @@ public class SampleTest {
 
 
     @Test
     @Test
     public void testWrapperOrderBy() {
     public void testWrapperOrderBy() {
-        System.out.println(Condition.create().orderByAsc("1", "2", "3", "4").getSqlSegment());
-        System.out.println(Condition.create().orderByDesc("1", "2", "3", "4").getSqlSegment());
+        System.out.println(Wrappers.query().orderByAsc("1", "2", "3", "4").getSqlSegment());
+        System.out.println(Wrappers.query().orderByDesc("1", "2", "3", "4").getSqlSegment());
     }
     }
 
 
     @Test
     @Test
     public void testClone() {
     public void testClone() {
-        QueryWrapper<Object> wrapper = Condition.create().orderByAsc("1", "2", "3", "4");
+        QueryWrapper<Object> wrapper = Wrappers.query().orderByAsc("1", "2", "3", "4");
         QueryWrapper<Object> clone = wrapper.clone().orderByDesc("5", "6", "7");
         QueryWrapper<Object> clone = wrapper.clone().orderByDesc("5", "6", "7");
         System.out.println(wrapper.getSqlSegment());
         System.out.println(wrapper.getSqlSegment());
         System.out.println(clone.getSqlSegment());
         System.out.println(clone.getSqlSegment());
@@ -52,6 +53,6 @@ public class SampleTest {
 
 
     @Test
     @Test
     public void testPrefixOrder() {
     public void testPrefixOrder() {
-        System.out.println(Condition.create().eq("order_id", 1).getSqlSegment());
+        System.out.println(Wrappers.query().eq("order_id", 1).getSqlSegment());
     }
     }
 }
 }

+ 2 - 2
mybatis-plus/src/test/java/com/baomidou/mybatisplus/test/base/enums/TestEnum.java

@@ -12,8 +12,8 @@ public enum TestEnum implements IEnum<Integer> {
     ONE(1, "一"),
     ONE(1, "一"),
     TWO(2, "二");
     TWO(2, "二");
 
 
-    private int code;
-    private String val;
+    private final int code;
+    private final String val;
 
 
     TestEnum(int code, String val) {
     TestEnum(int code, String val) {
         this.code = code;
         this.code = code;

+ 2 - 2
mybatis-plus/src/test/java/com/baomidou/mybatisplus/test/h2/H2StudentMapperTest.java

@@ -10,10 +10,10 @@ import org.junit.runner.RunWith;
 import org.springframework.test.context.ContextConfiguration;
 import org.springframework.test.context.ContextConfiguration;
 import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
 import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
 
 
-import com.baomidou.mybatisplus.core.conditions.Condition;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Assert;
 import com.baomidou.mybatisplus.core.toolkit.Assert;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.test.h2.entity.enums.GenderEnum;
 import com.baomidou.mybatisplus.test.h2.entity.enums.GenderEnum;
 import com.baomidou.mybatisplus.test.h2.entity.enums.GradeEnum;
 import com.baomidou.mybatisplus.test.h2.entity.enums.GradeEnum;
@@ -69,7 +69,7 @@ public class H2StudentMapperTest extends BaseTest {
 
 
     @Test
     @Test
     public void pageCountZeroTest() {
     public void pageCountZeroTest() {
-        IPage page = studentMapper.selectPage(new Page<>(), Condition.<H2Student>create().eq("name", "无"));
+        IPage page = studentMapper.selectPage(new Page<>(), Wrappers.<H2Student>query().eq("name", "无"));
         if (null != page) {
         if (null != page) {
             System.out.println("total: " + page.getTotal());
             System.out.println("total: " + page.getTotal());
         }
         }

+ 15 - 14
mybatis-plus/src/test/java/com/baomidou/mybatisplus/test/h2/H2UserTest.java

@@ -1,11 +1,12 @@
 package com.baomidou.mybatisplus.test.h2;
 package com.baomidou.mybatisplus.test.h2;
 
 
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
-import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
-import com.baomidou.mybatisplus.test.h2.entity.enums.AgeEnum;
-import com.baomidou.mybatisplus.test.h2.entity.persistent.H2User;
-import com.baomidou.mybatisplus.test.h2.service.IH2UserService;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
 import org.junit.Assert;
 import org.junit.Assert;
 import org.junit.FixMethodOrder;
 import org.junit.FixMethodOrder;
 import org.junit.Test;
 import org.junit.Test;
@@ -15,12 +16,12 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.test.context.ContextConfiguration;
 import org.springframework.test.context.ContextConfiguration;
 import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
 import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
 
 
-import java.math.BigDecimal;
-import java.math.RoundingMode;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.test.h2.entity.enums.AgeEnum;
+import com.baomidou.mybatisplus.test.h2.entity.persistent.H2User;
+import com.baomidou.mybatisplus.test.h2.service.IH2UserService;
 
 
 /**
 /**
  * <p>
  * <p>
@@ -167,7 +168,7 @@ public class H2UserTest extends BaseTest {
         ew.ge("age", AgeEnum.TWO.getValue());
         ew.ge("age", AgeEnum.TWO.getValue());
         for (H2User u : userService.list(ew)) {
         for (H2User u : userService.list(ew)) {
             System.out.println(u.getName() + "," + u.getAge() + "," + u.getVersion());
             System.out.println(u.getName() + "," + u.getAge() + "," + u.getVersion());
-            if (id99 != null && u.getTestId().equals(id99)) {
+            if (u.getTestId().equals(id99)) {
                 Assert.assertEquals("optLocker should update version+=1", 100, u.getVersion().intValue());
                 Assert.assertEquals("optLocker should update version+=1", 100, u.getVersion().intValue());
             }
             }
         }
         }
@@ -201,7 +202,7 @@ public class H2UserTest extends BaseTest {
         ew.ge("age", AgeEnum.TWO.getValue());
         ew.ge("age", AgeEnum.TWO.getValue());
         for (H2User u : userService.list(ew)) {
         for (H2User u : userService.list(ew)) {
             System.out.println(u.getName() + "," + u.getAge() + "," + u.getVersion());
             System.out.println(u.getName() + "," + u.getAge() + "," + u.getVersion());
-            if (id99 != null && u.getTestId().equals(id99)) {
+            if (u.getTestId().equals(id99)) {
                 Assert.assertEquals("optLocker should update version+=1", 100, u.getVersion().intValue());
                 Assert.assertEquals("optLocker should update version+=1", 100, u.getVersion().intValue());
             } else {
             } else {
                 Assert.assertEquals("other records should not be updated", idPriceMap.get(u.getTestId()), u.getPrice());
                 Assert.assertEquals("other records should not be updated", idPriceMap.get(u.getTestId()), u.getPrice());

+ 2 - 2
mybatis-plus/src/test/java/com/baomidou/mybatisplus/test/h2/entity/enums/AgeEnum.java

@@ -15,8 +15,8 @@ public enum AgeEnum implements IEnum<Integer> {
     TWO(2, "二岁"),
     TWO(2, "二岁"),
     THREE(3, "三岁");
     THREE(3, "三岁");
 
 
-    private int value;
-    private String desc;
+    private final int value;
+    private final String desc;
 
 
     AgeEnum(final int value, final String desc) {
     AgeEnum(final int value, final String desc) {
         this.value = value;
         this.value = value;

+ 1 - 1
mybatis-plus/src/test/java/com/baomidou/mybatisplus/test/h2/entity/enums/GenderEnum.java

@@ -10,5 +10,5 @@ package com.baomidou.mybatisplus.test.h2.entity.enums;
 public enum GenderEnum {
 public enum GenderEnum {
 
 
     MALE,
     MALE,
-    FEMALE;
+    FEMALE
 }
 }

+ 21 - 24
mybatis-plus/src/test/java/com/baomidou/mybatisplus/test/mysql/MysqlTestDataMapperTest.java

@@ -18,12 +18,12 @@ import org.springframework.test.context.ContextConfiguration;
 import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
 import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
 
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSON;
-import com.baomidou.mybatisplus.core.conditions.Condition;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.TableFieldInfo;
 import com.baomidou.mybatisplus.core.metadata.TableFieldInfo;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.test.base.entity.CommonData;
 import com.baomidou.mybatisplus.test.base.entity.CommonData;
 import com.baomidou.mybatisplus.test.base.entity.CommonLogicData;
 import com.baomidou.mybatisplus.test.base.entity.CommonLogicData;
@@ -236,18 +236,16 @@ public class MysqlTestDataMapperTest {
     public void d7_1_selectListForNoLogic() {
     public void d7_1_selectListForNoLogic() {
         // 1. 只有 entity
         // 1. 只有 entity
         MysqlData data = new MysqlData().setOrder(1);
         MysqlData data = new MysqlData().setOrder(1);
-        Assert.assertTrue(CollectionUtils.isNotEmpty(mysqlMapper.selectList(Condition.create(data))));
+        Assert.assertTrue(CollectionUtils.isNotEmpty(mysqlMapper.selectList(Wrappers.query(data))));
         // 2. 有 entity 也有 where 条件
         // 2. 有 entity 也有 where 条件
-        Assert.assertTrue(CollectionUtils.isNotEmpty(mysqlMapper.selectList(Condition.create(data)
-            .lambda().eq(MysqlData::getGroup, 1))));
+        Assert.assertTrue(CollectionUtils.isNotEmpty(mysqlMapper.selectList(Wrappers.query(data).eq(MysqlData::getGroup, 1))));
         // 3. 有 entity 也有 where 条件 也有 last 条件
         // 3. 有 entity 也有 where 条件 也有 last 条件
-        Assert.assertTrue(CollectionUtils.isNotEmpty(mysqlMapper.selectList(Condition.create(data)
-            .lambda().eq(MysqlData::getGroup, 1).last("limit 1"))));
+        Assert.assertTrue(CollectionUtils.isNotEmpty(mysqlMapper.selectList(Wrappers.query(data).eq(MysqlData::getGroup, 1).last("limit 1"))));
         // 4. 有 entity 也有 last 条件
         // 4. 有 entity 也有 last 条件
-        Assert.assertTrue(CollectionUtils.isNotEmpty(mysqlMapper.selectList(Condition.create(data)
+        Assert.assertTrue(CollectionUtils.isNotEmpty(mysqlMapper.selectList(Wrappers.query(data)
             .last("limit 1"))));
             .last("limit 1"))));
         // 5. 只有 order by 或者 last
         // 5. 只有 order by 或者 last
-        Assert.assertTrue(CollectionUtils.isNotEmpty(mysqlMapper.selectList(Condition.<MysqlData>create()
+        Assert.assertTrue(CollectionUtils.isNotEmpty(mysqlMapper.selectList(Wrappers.<MysqlData>query()
             .lambda().orderByDesc(MysqlData::getOrder).last("limit 1"))));
             .lambda().orderByDesc(MysqlData::getOrder).last("limit 1"))));
     }
     }
 
 
@@ -256,18 +254,16 @@ public class MysqlTestDataMapperTest {
     public void d7_2_selectListForLogic() {
     public void d7_2_selectListForLogic() {
         // 1. 只有 entity
         // 1. 只有 entity
         CommonLogicData data = new CommonLogicData().setTestInt(11);
         CommonLogicData data = new CommonLogicData().setTestInt(11);
-        Assert.assertTrue(CollectionUtils.isNotEmpty(commonLogicMapper.selectList(Condition.create(data))));
+        Assert.assertTrue(CollectionUtils.isNotEmpty(commonLogicMapper.selectList(Wrappers.query(data))));
         // 2. 有 entity 也有 where 条件
         // 2. 有 entity 也有 where 条件
-        Assert.assertTrue(CollectionUtils.isNotEmpty(commonLogicMapper.selectList(Condition.create(data)
-            .lambda().eq(CommonLogicData::getId, 11))));
+        Assert.assertTrue(CollectionUtils.isNotEmpty(commonLogicMapper.selectList(Wrappers.query(data).eq(CommonLogicData::getId, 11))));
         // 3. 有 entity 也有 where 条件 也有 last 条件
         // 3. 有 entity 也有 where 条件 也有 last 条件
-        Assert.assertTrue(CollectionUtils.isNotEmpty(commonLogicMapper.selectList(Condition.create(data)
-            .lambda().eq(CommonLogicData::getId, 11).last("limit 1"))));
+        Assert.assertTrue(CollectionUtils.isNotEmpty(commonLogicMapper.selectList(Wrappers.query(data).eq(CommonLogicData::getId, 11).last("limit 1"))));
         // 4. 有 entity 也有 last 条件
         // 4. 有 entity 也有 last 条件
-        Assert.assertTrue(CollectionUtils.isNotEmpty(commonLogicMapper.selectList(Condition.create(data)
+        Assert.assertTrue(CollectionUtils.isNotEmpty(commonLogicMapper.selectList(Wrappers.query(data)
             .last("limit 1"))));
             .last("limit 1"))));
         // 5. 只有 order by 或者 last
         // 5. 只有 order by 或者 last
-        Assert.assertTrue(CollectionUtils.isNotEmpty(commonLogicMapper.selectList(Condition.<CommonLogicData>create()
+        Assert.assertTrue(CollectionUtils.isNotEmpty(commonLogicMapper.selectList(Wrappers.<CommonLogicData>query()
             .lambda().orderByAsc(CommonLogicData::getTestInt).last("limit 1"))));
             .lambda().orderByAsc(CommonLogicData::getTestInt).last("limit 1"))));
     }
     }
 
 
@@ -329,21 +325,22 @@ public class MysqlTestDataMapperTest {
         commonMapper.selectList(new QueryWrapper<>(new CommonData().setTestStr("")).orderByAsc("test_int"));
         commonMapper.selectList(new QueryWrapper<>(new CommonData().setTestStr("")).orderByAsc("test_int"));
         commonMapper.selectList(new QueryWrapper<>(new CommonData().setTestStr("").setTestInt(12)).orderByAsc("test_int"));
         commonMapper.selectList(new QueryWrapper<>(new CommonData().setTestStr("").setTestInt(12)).orderByAsc("test_int"));
 
 
-        mysqlMapper.selectList(Condition.create(new MysqlData().setTestStr("")));
-        mysqlMapper.selectList(Condition.create(new MysqlData().setTestStr("")).orderByAsc("`group`"));
-        mysqlMapper.selectList(Condition.create(new MysqlData().setTestStr("").setGroup(1)).orderByAsc("`group`"));
+        mysqlMapper.selectList(Wrappers.query(new MysqlData().setTestStr("")));
+
+        mysqlMapper.selectList(Wrappers.query(new MysqlData().setTestStr("")).orderByAsc(MysqlData::getGroup));
+        mysqlMapper.selectList(Wrappers.query(new MysqlData().setTestStr("").setGroup(1)).orderByAsc(MysqlData::getGroup));
     }
     }
 
 
     @Test
     @Test
     @SuppressWarnings("unchecked")
     @SuppressWarnings("unchecked")
     public void d10_testDel1eq1Then() {
     public void d10_testDel1eq1Then() {
         // 有空对象,有 order by
         // 有空对象,有 order by
-        mysqlMapper.selectList(Condition.lambda(new MysqlData()).select(i -> true).orderByAsc(MysqlData::getId));
-        commonMapper.selectList(Condition.lambda(new CommonData()).orderByAsc(CommonData::getCreateDatetime));
-        commonLogicMapper.selectList(Condition.lambda(new CommonLogicData()).orderByAsc(CommonLogicData::getCreateDatetime));
+        mysqlMapper.selectList(Wrappers.query(new MysqlData()).select(i -> true).orderByAsc(MysqlData::getId));
+        commonMapper.selectList(Wrappers.query(new CommonData()).orderByAsc(CommonData::getCreateDatetime));
+        commonLogicMapper.selectList(Wrappers.query(new CommonLogicData()).orderByAsc(CommonLogicData::getCreateDatetime));
         // 对象有值,有 order by
         // 对象有值,有 order by
-        mysqlMapper.selectList(Condition.lambda(new MysqlData().setOrder(12)).select(i -> true).orderByAsc(MysqlData::getId));
-        commonMapper.selectList(Condition.lambda(new CommonData().setTestInt(12)).orderByAsc(CommonData::getCreateDatetime));
-        commonLogicMapper.selectList(Condition.lambda(new CommonLogicData().setTestInt(12)).orderByAsc(CommonLogicData::getCreateDatetime));
+        mysqlMapper.selectList(Wrappers.query(new MysqlData().setOrder(12)).select(i -> true).orderByAsc(MysqlData::getId));
+        commonMapper.selectList(Wrappers.query(new CommonData().setTestInt(12)).orderByAsc(CommonData::getCreateDatetime));
+        commonLogicMapper.selectList(Wrappers.query(new CommonLogicData().setTestInt(12)).orderByAsc(CommonLogicData::getCreateDatetime));
     }
     }
 }
 }