ソースを参照

抛出异常到最后才进行 format

miemie 6 年 前
コミット
b4be9b27d4

+ 7 - 9
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/metadata/TableInfo.java

@@ -15,13 +15,6 @@
  */
 package com.baomidou.mybatisplus.core.metadata;
 
-import static java.util.stream.Collectors.joining;
-
-import java.util.List;
-import java.util.function.Predicate;
-
-import org.apache.ibatis.session.Configuration;
-
 import com.baomidou.mybatisplus.annotation.DbType;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.KeySequence;
@@ -31,11 +24,16 @@ import com.baomidou.mybatisplus.core.toolkit.StringPool;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.sql.SqlScriptUtils;
 import com.baomidou.mybatisplus.core.toolkit.sql.SqlUtils;
-
 import lombok.AccessLevel;
 import lombok.Data;
 import lombok.Setter;
 import lombok.experimental.Accessors;
+import org.apache.ibatis.session.Configuration;
+
+import java.util.List;
+import java.util.function.Predicate;
+
+import static java.util.stream.Collectors.joining;
 
 /**
  * <p>
@@ -308,7 +306,7 @@ public class TableInfo {
     public String getLogicDeleteSql(boolean startWithAnd, boolean deleteValue) {
         if (logicDelete) {
             TableFieldInfo field = fieldList.stream().filter(TableFieldInfo::isLogicDelete).findFirst()
-                .orElseThrow(() -> ExceptionUtils.mpe(String.format("can't find the logicFiled from table {%s}", tableName)));
+                .orElseThrow(() -> ExceptionUtils.mpe("can't find the logicFiled from table {%s}", tableName));
             String formatStr = field.isCharSequence() ? "'%s'" : "%s";
             String logicDeleteSql = field.getColumn() + StringPool.EQUALS +
                 String.format(formatStr, deleteValue ? field.getLogicDeleteValue() : field.getLogicNotDeleteValue());

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

@@ -75,7 +75,7 @@ public abstract class AbstractJsqlParser implements ISqlParser {
                     return SqlInfo.newInstance().setSql(sqlStringBuilder.toString());
                 }
             } catch (JSQLParserException e) {
-                throw ExceptionUtils.mpe("Failed to process, please exclude the tableName or statementId.\n Error SQL: " + sql, e);
+                throw ExceptionUtils.mpe("Failed to process, please exclude the tableName or statementId.\n Error SQL: %s", e, sql);
             }
         }
         return null;

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

@@ -96,7 +96,7 @@ public final class ClassUtils {
             constructor.setAccessible(true);
             return constructor.newInstance();
         } catch (InstantiationException | IllegalAccessException | InvocationTargetException | NoSuchMethodException e) {
-            throw ExceptionUtils.mpe("实例化对象时出现错误,请尝试给 " + clazz.getName() + "添加无参的构造方法", e);
+            throw ExceptionUtils.mpe("实例化对象时出现错误,请尝试给 %s 添加无参的构造方法", e, clazz.getName());
         }
     }
 

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

@@ -38,7 +38,7 @@ public final class ExceptionUtils {
      * @return 返回异常
      */
     public static MybatisPlusException mpe(String msg, Throwable t, Object... params) {
-        return new MybatisPlusException(StringUtils.format(false, msg, params), t);
+        return new MybatisPlusException(StringUtils.format(msg, params), t);
     }
 
     /**
@@ -48,7 +48,7 @@ public final class ExceptionUtils {
      * @return 返回异常
      */
     public static MybatisPlusException mpe(String msg, Object... params) {
-        return new MybatisPlusException(StringUtils.format(false, msg, params));
+        return new MybatisPlusException(StringUtils.format(msg, params));
     }
 
     /**

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

@@ -65,15 +65,11 @@ public class StringUtils {
     /**
      * 安全的进行字符串 format
      *
-     * @param mustDo 肯定能 format
      * @param target 目标字符串
      * @param params format 参数
      * @return format 后的
      */
-    public static String format(boolean mustDo, String target, Object... params) {
-        if (mustDo) {
-            return String.format(target, params);
-        }
+    public static String format(String target, Object... params) {
         if (target.contains("%s") && ArrayUtils.isNotEmpty(params)) {
             return String.format(target, params);
         }

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

@@ -388,8 +388,8 @@ public class TableInfoHelper {
             }
             return true;
         }
-        throw ExceptionUtils.mpe(String.format("Class: %s, Field: %s, 'value' 'el' Length must be consistent.",
-            clazz.getName(), field.getName()));
+        throw ExceptionUtils.mpe("Class: %s, Field: %s, 'value' 'el' Length must be consistent.",
+            clazz.getName(), field.getName());
     }
 
     /**
@@ -425,8 +425,7 @@ public class TableInfoHelper {
      * </p>
      */
     private static void throwExceptionId(Class<?> clazz) {
-        throw ExceptionUtils.mpe("There must be only one, Discover multiple @TableId annotation in " +
-            clazz.getName());
+        throw ExceptionUtils.mpe("There must be only one, Discover multiple @TableId annotation in %s", clazz.getName());
     }
 
     /**

+ 32 - 53
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/plugins/pagination/DialectFactory.java

@@ -15,28 +15,16 @@
  */
 package com.baomidou.mybatisplus.extension.plugins.pagination;
 
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-
-import org.apache.ibatis.session.RowBounds;
-
 import com.baomidou.mybatisplus.annotation.DbType;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Assert;
 import com.baomidou.mybatisplus.core.toolkit.ExceptionUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
-import com.baomidou.mybatisplus.extension.plugins.pagination.dialects.DB2Dialect;
-import com.baomidou.mybatisplus.extension.plugins.pagination.dialects.DmDialect;
-import com.baomidou.mybatisplus.extension.plugins.pagination.dialects.H2Dialect;
-import com.baomidou.mybatisplus.extension.plugins.pagination.dialects.HSQLDialect;
-import com.baomidou.mybatisplus.extension.plugins.pagination.dialects.IDialect;
-import com.baomidou.mybatisplus.extension.plugins.pagination.dialects.MariaDBDialect;
-import com.baomidou.mybatisplus.extension.plugins.pagination.dialects.MySqlDialect;
-import com.baomidou.mybatisplus.extension.plugins.pagination.dialects.OracleDialect;
-import com.baomidou.mybatisplus.extension.plugins.pagination.dialects.PostgreDialect;
-import com.baomidou.mybatisplus.extension.plugins.pagination.dialects.SQLServer2005Dialect;
-import com.baomidou.mybatisplus.extension.plugins.pagination.dialects.SQLServerDialect;
-import com.baomidou.mybatisplus.extension.plugins.pagination.dialects.SQLiteDialect;
+import com.baomidou.mybatisplus.extension.plugins.pagination.dialects.*;
+import org.apache.ibatis.session.RowBounds;
+
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
 
 
 /**
@@ -144,7 +132,7 @@ public class DialectFactory {
                         DIALECT_CACHE.put(dialectClazz, dialect);
                     }
                 } catch (ClassNotFoundException e) {
-                    throw ExceptionUtils.mpe("Class :" + dialectClazz + " is not found");
+                    throw ExceptionUtils.mpe("Class : %s is not found", dialectClazz);
                 }
             } else {
                 // 缓存方言
@@ -163,43 +151,34 @@ public class DialectFactory {
      * </p>
      *
      * @param dbType 数据库类型
-     * @return
-     * @throws Exception
+     * @return 分页语句组装类
      */
     private static IDialect getDialectByDbType(DbType dbType) {
-        if (dbType == DbType.MYSQL) {
-            return new MySqlDialect();
-        }
-        if (dbType == DbType.MARIADB) {
-            return new MariaDBDialect();
-        }
-        if (dbType == DbType.ORACLE) {
-            return new OracleDialect();
-        }
-        if (dbType == DbType.DB2) {
-            return new DB2Dialect();
-        }
-        if (dbType == DbType.H2) {
-            return new H2Dialect();
-        }
-        if (dbType == DbType.SQL_SERVER) {
-            return new SQLServerDialect();
-        }
-        if (dbType == DbType.SQL_SERVER2005) {
-            return new SQLServer2005Dialect();
-        }
-        if (dbType == DbType.POSTGRE_SQL) {
-            return new PostgreDialect();
-        }
-        if (dbType == DbType.HSQL) {
-            return new HSQLDialect();
-        }
-        if (dbType == DbType.SQLITE) {
-            return new SQLiteDialect();
-        }
-        if (dbType == DbType.DM) {
-            return new DmDialect();
+        switch (dbType) {
+            case MYSQL:
+                return new MySqlDialect();
+            case MARIADB:
+                return new MariaDBDialect();
+            case ORACLE:
+                return new OracleDialect();
+            case DB2:
+                return new DB2Dialect();
+            case H2:
+                return new H2Dialect();
+            case SQL_SERVER:
+                return new SQLServerDialect();
+            case SQL_SERVER2005:
+                return new SQLServer2005Dialect();
+            case POSTGRE_SQL:
+                return new PostgreDialect();
+            case HSQL:
+                return new HSQLDialect();
+            case SQLITE:
+                return new SQLiteDialect();
+            case DM:
+                return new DmDialect();
+            default:
+                throw ExceptionUtils.mpe("The Database's IDialect Not Supported!");
         }
-        throw ExceptionUtils.mpe("The Database's Not Supported! DBType:" + dbType);
     }
 }

+ 6 - 7
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/toolkit/PackageHelper.java

@@ -15,10 +15,7 @@
  */
 package com.baomidou.mybatisplus.extension.toolkit;
 
-import java.io.File;
-import java.util.HashSet;
-import java.util.Set;
-
+import com.baomidou.mybatisplus.core.toolkit.ExceptionUtils;
 import org.springframework.core.io.Resource;
 import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
 import org.springframework.core.io.support.ResourcePatternResolver;
@@ -27,7 +24,9 @@ import org.springframework.core.type.classreading.MetadataReader;
 import org.springframework.core.type.classreading.MetadataReaderFactory;
 import org.springframework.util.ClassUtils;
 
-import com.baomidou.mybatisplus.core.toolkit.ExceptionUtils;
+import java.io.File;
+import java.util.HashSet;
+import java.util.Set;
 
 /**
  * <p>
@@ -76,7 +75,7 @@ public class PackageHelper {
             }
             return new String[0];
         } catch (Exception e) {
-            throw ExceptionUtils.mpe("not find typeAliasesPackage:" + pkg, e);
+            throw ExceptionUtils.mpe("not find typeAliasesPackage: %s", e, pkg);
         }
     }
 
@@ -112,7 +111,7 @@ public class PackageHelper {
             }
             return set;
         } catch (Exception e) {
-            throw ExceptionUtils.mpe("not find scanTypePackage:" + pkg, e);
+            throw ExceptionUtils.mpe("not find scanTypePackage: %s", e, pkg);
         }
     }