Browse Source

先提交部分,优化掉抛异常为使用 assert 或者 exceptionUtils

miemie 6 years ago
parent
commit
6834af826d
16 changed files with 153 additions and 248 deletions
  1. 0 1
      mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/exceptions/MybatisPlusException.java
  2. 5 7
      mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/parser/AbstractJsqlParser.java
  3. 5 2
      mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/toolkit/Assert.java
  4. 7 9
      mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/toolkit/ReflectionKit.java
  5. 7 12
      mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/toolkit/Sequence.java
  6. 13 22
      mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/toolkit/SerializationUtils.java
  7. 7 12
      mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/toolkit/support/SerializedLambda.java
  8. 10 16
      mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/MybatisSqlSessionTemplate.java
  9. 29 36
      mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/activerecord/Model.java
  10. 3 8
      mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/parsers/BlockAttackSqlParser.java
  11. 9 25
      mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/plugins/PerformanceInterceptor.java
  12. 10 23
      mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/plugins/pagination/DialectFactory.java
  13. 27 38
      mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/spring/MybatisSqlSessionFactoryBean.java
  14. 4 7
      mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/toolkit/JdbcUtils.java
  15. 9 12
      mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/toolkit/PackageHelper.java
  16. 8 18
      mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/config/DataSourceConfig.java

+ 0 - 1
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/exceptions/MybatisPlusException.java

@@ -38,5 +38,4 @@ public class MybatisPlusException extends RuntimeException {
     public MybatisPlusException(String message, Throwable throwable) {
         super(message, throwable);
     }
-
 }

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

@@ -15,12 +15,7 @@
  */
 package com.baomidou.mybatisplus.core.parser;
 
-import org.apache.ibatis.logging.Log;
-import org.apache.ibatis.logging.LogFactory;
-import org.apache.ibatis.reflection.MetaObject;
-
-import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
-
+import com.baomidou.mybatisplus.core.toolkit.ExceptionUtils;
 import net.sf.jsqlparser.JSQLParserException;
 import net.sf.jsqlparser.parser.CCJSqlParserUtil;
 import net.sf.jsqlparser.statement.Statement;
@@ -30,6 +25,9 @@ import net.sf.jsqlparser.statement.insert.Insert;
 import net.sf.jsqlparser.statement.select.Select;
 import net.sf.jsqlparser.statement.select.SelectBody;
 import net.sf.jsqlparser.statement.update.Update;
+import org.apache.ibatis.logging.Log;
+import org.apache.ibatis.logging.LogFactory;
+import org.apache.ibatis.reflection.MetaObject;
 
 /**
  * <p>
@@ -77,7 +75,7 @@ public abstract class AbstractJsqlParser implements ISqlParser {
                     return SqlInfo.newInstance().setSql(sqlStringBuilder.toString());
                 }
             } catch (JSQLParserException e) {
-                throw new MybatisPlusException("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: " + sql, e);
             }
         }
         return null;

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

@@ -31,6 +31,7 @@ public final class Assert {
 
     /**
      * 断言这个 boolean 为 true
+     * 为 false 则抛出异常
      *
      * @param expression boolean 值
      * @param message    消息
@@ -43,6 +44,7 @@ public final class Assert {
 
     /**
      * 断言这个 boolean 为 false
+     * 为 true 则抛出异常
      *
      * @param expression boolean 值
      * @param message    消息
@@ -90,10 +92,11 @@ public final class Assert {
     public static void notEmpty(Map<?, ?> map, String message) {
         isTrue(CollectionUtils.isNotEmpty(map), message);
     }
-    
+
     /**
      * 断言数组不能为空
-     * @param array 数组
+     *
+     * @param array   数组
      * @param message 消息
      */
     public static void notEmpty(Object[] array, String message) {

+ 7 - 9
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/toolkit/ReflectionKit.java

@@ -15,7 +15,6 @@
  */
 package com.baomidou.mybatisplus.core.toolkit;
 
-import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
 import org.apache.ibatis.logging.Log;
 import org.apache.ibatis.logging.LogFactory;
 
@@ -58,9 +57,9 @@ public class ReflectionKit {
      * 反射 method 方法名,例如 setVersion
      * </p>
      *
-     * @param   field Field
-     * @param   str String JavaBean类的version属性名
-     * @return  version属性的setter方法名称,e.g. setVersion
+     * @param field Field
+     * @param str   String JavaBean类的version属性名
+     * @return version属性的setter方法名称,e.g. setVersion
      */
     public static String setMethodCapitalize(Field field, final String str) {
         Class<?> fieldType = field.getType();
@@ -83,18 +82,17 @@ public class ReflectionKit {
         Map<String, Field> fieldMaps = getFieldMap(cls);
         try {
             if (CollectionUtils.isEmpty(fieldMaps)) {
-                throw new MybatisPlusException(
-                    String.format("Error: NoSuchField in %s for %s.  Cause:", cls.getSimpleName(), str));
+                throw ExceptionUtils.mpe(String.format("Error: NoSuchField in %s for %s.  Cause:", cls.getSimpleName(), str));
             }
             Method method = cls.getMethod(getMethodCapitalize(fieldMaps.get(str), str));
             return method.invoke(entity);
         } catch (NoSuchMethodException e) {
-            throw new MybatisPlusException(String.format("Error: NoSuchMethod in %s.  Cause:", cls.getSimpleName()) + e);
+            throw ExceptionUtils.mpe(String.format("Error: NoSuchMethod in %s.  Cause:", cls.getSimpleName()) + e);
         } catch (IllegalAccessException e) {
-            throw new MybatisPlusException(String.format("Error: Cannot execute a private method. in %s.  Cause:",
+            throw ExceptionUtils.mpe(String.format("Error: Cannot execute a private method. in %s.  Cause:",
                 cls.getSimpleName()) + e);
         } catch (InvocationTargetException e) {
-            throw new MybatisPlusException("Error: InvocationTargetException on getMethodValue.  Cause:" + e);
+            throw ExceptionUtils.mpe("Error: InvocationTargetException on getMethodValue.  Cause:" + e);
         }
     }
 

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

@@ -15,16 +15,14 @@
  */
 package com.baomidou.mybatisplus.core.toolkit;
 
+import org.apache.ibatis.logging.Log;
+import org.apache.ibatis.logging.LogFactory;
+
 import java.lang.management.ManagementFactory;
 import java.net.InetAddress;
 import java.net.NetworkInterface;
 import java.util.concurrent.ThreadLocalRandom;
 
-import org.apache.ibatis.logging.Log;
-import org.apache.ibatis.logging.LogFactory;
-
-import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
-
 /**
  * <p>
  * 分布式高效有序ID生产黑科技(sequence) <br>
@@ -89,13 +87,10 @@ public class Sequence {
      * @param datacenterId 序列号
      */
     public Sequence(long workerId, long datacenterId) {
-        if (workerId > maxWorkerId || workerId < 0) {
-            throw new MybatisPlusException(String.format("worker Id can't be greater than %d or less than 0", maxWorkerId));
-        }
-        if (datacenterId > maxDatacenterId || datacenterId < 0) {
-            throw new MybatisPlusException(
-                String.format("datacenter Id can't be greater than %d or less than 0", maxDatacenterId));
-        }
+        Assert.isFalse(workerId > maxWorkerId || workerId < 0,
+            String.format("worker Id can't be greater than %d or less than 0", maxWorkerId));
+        Assert.isFalse(datacenterId > maxDatacenterId || datacenterId < 0,
+            String.format("datacenter Id can't be greater than %d or less than 0", maxDatacenterId));
         this.workerId = workerId;
         this.datacenterId = datacenterId;
     }

+ 13 - 22
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/toolkit/SerializationUtils.java

@@ -16,20 +16,12 @@
  */
 package com.baomidou.mybatisplus.core.toolkit;
 
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
-import java.io.ObjectStreamClass;
-import java.io.OutputStream;
-import java.io.Serializable;
+import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
+
+import java.io.*;
 import java.util.HashMap;
 import java.util.Map;
 
-import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
-
 
 /**
  * <p>Assists with the serialization process and performs additional functionality based
@@ -100,9 +92,9 @@ public class SerializationUtils {
             return readObject;
 
         } catch (final ClassNotFoundException ex) {
-            throw new MybatisPlusException("ClassNotFoundException while reading cloned object data", ex);
+            throw ExceptionUtils.mpe("ClassNotFoundException while reading cloned object data", ex);
         } catch (final IOException ex) {
-            throw new MybatisPlusException("IOException while reading or closing cloned object data", ex);
+            throw ExceptionUtils.mpe("IOException while reading or closing cloned object data", ex);
         }
     }
 
@@ -143,7 +135,7 @@ public class SerializationUtils {
         try (ObjectOutputStream out = new ObjectOutputStream(outputStream)) {
             out.writeObject(obj);
         } catch (final IOException ex) {
-            throw new MybatisPlusException(ex);
+            throw ExceptionUtils.mpe(ex);
         }
     }
 
@@ -197,7 +189,7 @@ public class SerializationUtils {
             @SuppressWarnings("unchecked") final T obj = (T) in.readObject();
             return obj;
         } catch (final ClassNotFoundException | IOException ex) {
-            throw new MybatisPlusException(ex);
+            throw ExceptionUtils.mpe(ex);
         }
     }
 
@@ -223,6 +215,12 @@ public class SerializationUtils {
         return SerializationUtils.deserialize(new ByteArrayInputStream(objectData));
     }
 
+    public static void isTrue(final boolean expression, final String message, final Object... values) {
+        if (!expression) {
+            throw new IllegalArgumentException(String.format(message, values));
+        }
+    }
+
     /**
      * <p>Custom specialization of the standard JDK {@link ObjectInputStream}
      * that uses a custom  <code>ClassLoader</code> to resolve a class.
@@ -294,12 +292,5 @@ public class SerializationUtils {
                 }
             }
         }
-
-    }
-
-    public static void isTrue(final boolean expression, final String message, final Object... values) {
-        if (!expression) {
-            throw new IllegalArgumentException(String.format(message, values));
-        }
     }
 }

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

@@ -1,17 +1,12 @@
 package com.baomidou.mybatisplus.core.toolkit.support;
 
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.ObjectInputStream;
-import java.io.ObjectStreamClass;
-import java.io.Serializable;
-
-import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
+import com.baomidou.mybatisplus.core.toolkit.ExceptionUtils;
 import com.baomidou.mybatisplus.core.toolkit.SerializationUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringPool;
-
 import lombok.Getter;
 
+import java.io.*;
+
 /**
  * 这个类是从 {@link java.lang.invoke.SerializedLambda} 里面 copy 过来的
  * 字段信息完全一样
@@ -53,14 +48,14 @@ public class SerializedLambda implements Serializable {
         }) {
             return (SerializedLambda) objIn.readObject();
         } catch (ClassNotFoundException | IOException e) {
-            throw new MybatisPlusException("This is impossible to happen", e);
+            throw ExceptionUtils.mpe("This is impossible to happen", e);
         }
     }
 
     @Override
     public String toString() {
-        return new StringBuilder(super.toString())
-            .append(implClass.replace(StringPool.SLASH, StringPool.DOT))
-            .append(StringPool.HASH).append(implMethodName).toString();
+        return super.toString() +
+            implClass.replace(StringPool.SLASH, StringPool.DOT) +
+            StringPool.HASH + implMethodName;
     }
 }

+ 10 - 16
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/MybatisSqlSessionTemplate.java

@@ -15,28 +15,22 @@
  */
 package com.baomidou.mybatisplus.extension;
 
-import static java.lang.reflect.Proxy.newProxyInstance;
-
-import java.lang.reflect.InvocationHandler;
-import java.lang.reflect.Method;
-import java.sql.Connection;
-import java.util.List;
-import java.util.Map;
-
+import com.baomidou.mybatisplus.core.toolkit.ExceptionUtils;
 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.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 com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
+import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.Method;
+import java.sql.Connection;
+import java.util.List;
+import java.util.Map;
+
+import static java.lang.reflect.Proxy.newProxyInstance;
 
 /**
  * Copy SqlSessionTemplate
@@ -402,7 +396,7 @@ public class MybatisSqlSessionTemplate implements SqlSession, DisposableBean {
                 sqlSession.commit(true);
                 return result;
             } catch (Throwable t) {
-                throw new MybatisPlusException(t);
+                throw ExceptionUtils.mpe(t);
             } finally {
                 if (sqlSession != null) {
                     sqlSession.close();

+ 29 - 36
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/activerecord/Model.java

@@ -15,21 +15,21 @@
  */
 package com.baomidou.mybatisplus.extension.activerecord;
 
-import java.io.Serializable;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.ibatis.session.SqlSession;
-import org.springframework.transaction.annotation.Transactional;
-
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.enums.SqlMethod;
-import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Assert;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.sql.SqlHelper;
 import com.baomidou.mybatisplus.extension.toolkit.SqlRunner;
+import org.apache.ibatis.session.SqlSession;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.io.Serializable;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -51,7 +51,7 @@ public abstract class Model<T extends Model> implements Serializable {
      */
     @Transactional(rollbackFor = Exception.class)
     public boolean insert() {
-        try(SqlSession session = sqlSession()) {
+        try (SqlSession session = sqlSession()) {
             return SqlHelper.retBool(session.insert(sqlStatement(SqlMethod.INSERT_ONE), this));
         }
     }
@@ -84,7 +84,7 @@ public abstract class Model<T extends Model> implements Serializable {
      */
     @Transactional(rollbackFor = Exception.class)
     public boolean deleteById(Serializable id) {
-        try(SqlSession session = sqlSession()) {
+        try (SqlSession session = sqlSession()) {
             return SqlHelper.delBool(session.delete(sqlStatement(SqlMethod.DELETE_BY_ID), id));
         }
     }
@@ -98,9 +98,7 @@ public abstract class Model<T extends Model> implements Serializable {
      */
     @Transactional(rollbackFor = Exception.class)
     public boolean deleteById() {
-        if (StringUtils.checkValNull(pkVal())) {
-            throw new MybatisPlusException("deleteById primaryKey is null.");
-        }
+        Assert.isFalse(StringUtils.checkValNull(pkVal()), "deleteById primaryKey is null.");
         return deleteById(pkVal());
     }
 
@@ -115,8 +113,8 @@ public abstract class Model<T extends Model> implements Serializable {
     @Transactional(rollbackFor = Exception.class)
     public boolean delete(Wrapper wrapper) {
         Map<String, Object> map = new HashMap<>(1);
-        map.put("ew", wrapper);
-        try(SqlSession session = sqlSession()) {
+        map.put(Constants.WRAPPER, wrapper);
+        try (SqlSession session = sqlSession()) {
             return SqlHelper.delBool(session.delete(sqlStatement(SqlMethod.DELETE), map));
         }
     }
@@ -128,12 +126,10 @@ public abstract class Model<T extends Model> implements Serializable {
      */
     @Transactional(rollbackFor = Exception.class)
     public boolean updateById() {
-        if (StringUtils.checkValNull(pkVal())) {
-            throw new MybatisPlusException("updateById primaryKey is null.");
-        }
+        Assert.isFalse(StringUtils.checkValNull(pkVal()), "updateById primaryKey is null.");
         // updateById
         Map<String, Object> map = new HashMap<>(1);
-        map.put("et", this);
+        map.put(Constants.ENTITY, this);
         return SqlHelper.retBool(sqlSession().update(sqlStatement(SqlMethod.UPDATE_BY_ID), map));
     }
 
@@ -148,10 +144,10 @@ public abstract class Model<T extends Model> implements Serializable {
     @Transactional(rollbackFor = Exception.class)
     public boolean update(Wrapper wrapper) {
         Map<String, Object> map = new HashMap<>(2);
-        map.put("et", this);
-        map.put("ew", wrapper);
+        map.put(Constants.ENTITY, this);
+        map.put(Constants.WRAPPER, wrapper);
         // update
-        try(SqlSession session = sqlSession()) {
+        try (SqlSession session = sqlSession()) {
             return SqlHelper.retBool(session.update(sqlStatement(SqlMethod.UPDATE), map));
         }
     }
@@ -164,7 +160,7 @@ public abstract class Model<T extends Model> implements Serializable {
      * @return
      */
     public List<T> selectAll() {
-        try(SqlSession session = sqlSession()) {
+        try (SqlSession session = sqlSession()) {
             return session.selectList(sqlStatement(SqlMethod.SELECT_LIST));
         }
     }
@@ -178,7 +174,7 @@ public abstract class Model<T extends Model> implements Serializable {
      * @return
      */
     public T selectById(Serializable id) {
-        try(SqlSession session = sqlSession()) {
+        try (SqlSession session = sqlSession()) {
             return session.selectOne(sqlStatement(SqlMethod.SELECT_BY_ID), id);
         }
     }
@@ -191,9 +187,7 @@ public abstract class Model<T extends Model> implements Serializable {
      * @return
      */
     public T selectById() {
-        if (StringUtils.checkValNull(pkVal())) {
-            throw new MybatisPlusException("selectById primaryKey is null.");
-        }
+        Assert.isFalse(StringUtils.checkValNull(pkVal()), "selectById primaryKey is null.");
         return selectById(pkVal());
     }
 
@@ -208,8 +202,8 @@ public abstract class Model<T extends Model> implements Serializable {
 
     public List<T> selectList(Wrapper wrapper) {
         Map<String, Object> map = new HashMap<>(1);
-        map.put("ew", wrapper);
-        try(SqlSession session = sqlSession()) {
+        map.put(Constants.WRAPPER, wrapper);
+        try (SqlSession session = sqlSession()) {
             return session.selectList(sqlStatement(SqlMethod.SELECT_LIST), map);
         }
     }
@@ -237,9 +231,9 @@ public abstract class Model<T extends Model> implements Serializable {
      */
     public IPage<T> selectPage(IPage<T> page, Wrapper<T> wrapper) {
         Map<String, Object> map = new HashMap<>(2);
-        map.put("ew", SqlHelper.fillWrapper(page, wrapper));
-        map.put("page",page);
-        try(SqlSession session = sqlSession()) {
+        map.put(Constants.WRAPPER, SqlHelper.fillWrapper(page, wrapper));
+        map.put("page", page);
+        try (SqlSession session = sqlSession()) {
             page.setRecords(session.selectList(sqlStatement(SqlMethod.SELECT_PAGE), map));
         }
         return page;
@@ -255,8 +249,8 @@ public abstract class Model<T extends Model> implements Serializable {
      */
     public int selectCount(Wrapper wrapper) {
         Map<String, Object> map = new HashMap<>(1);
-        map.put("ew", wrapper);
-        try(SqlSession session = sqlSession()) {
+        map.put(Constants.WRAPPER, wrapper);
+        try (SqlSession session = sqlSession()) {
             return SqlHelper.retCount(session.<Integer>selectOne(sqlStatement(SqlMethod.SELECT_COUNT), map));
         }
     }
@@ -303,5 +297,4 @@ public abstract class Model<T extends Model> implements Serializable {
      * 主键值
      */
     protected abstract Serializable pkVal();
-
 }

+ 3 - 8
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/parsers/BlockAttackSqlParser.java

@@ -15,9 +15,8 @@
  */
 package com.baomidou.mybatisplus.extension.parsers;
 
-import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
 import com.baomidou.mybatisplus.core.parser.AbstractJsqlParser;
-
+import com.baomidou.mybatisplus.core.toolkit.Assert;
 import net.sf.jsqlparser.statement.delete.Delete;
 import net.sf.jsqlparser.statement.insert.Insert;
 import net.sf.jsqlparser.statement.select.SelectBody;
@@ -40,16 +39,12 @@ public class BlockAttackSqlParser extends AbstractJsqlParser {
 
     @Override
     public void processDelete(Delete delete) {
-        if (null == delete.getWhere()) {
-            throw new MybatisPlusException("Prohibition of full table deletion");
-        }
+        Assert.notNull(delete.getWhere(), "Prohibition of full table deletion");
     }
 
     @Override
     public void processUpdate(Update update) {
-        if (null == update.getWhere()) {
-            throw new MybatisPlusException("Prohibition of table update operation");
-        }
+        Assert.notNull(update.getWhere(), "Prohibition of table update operation");
     }
 
     @Override

+ 9 - 25
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/plugins/PerformanceInterceptor.java

@@ -15,36 +15,21 @@
  */
 package com.baomidou.mybatisplus.extension.plugins;
 
-import java.lang.reflect.Method;
-import java.lang.reflect.Proxy;
-import java.sql.Statement;
-import java.util.ArrayList;
-import java.util.Comparator;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Properties;
-import java.util.Set;
-
+import com.baomidou.mybatisplus.core.toolkit.*;
+import com.baomidou.mybatisplus.core.toolkit.sql.SqlUtils;
 import org.apache.ibatis.executor.statement.StatementHandler;
 import org.apache.ibatis.logging.Log;
 import org.apache.ibatis.logging.LogFactory;
 import org.apache.ibatis.mapping.MappedStatement;
-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.plugin.*;
 import org.apache.ibatis.reflection.MetaObject;
 import org.apache.ibatis.reflection.SystemMetaObject;
 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;
+import java.lang.reflect.Method;
+import java.lang.reflect.Proxy;
+import java.sql.Statement;
+import java.util.*;
 
 /**
  * <p>
@@ -175,9 +160,8 @@ public class PerformanceInterceptor implements Interceptor {
             }
         } else {
             System.err.println(formatSql.toString());
-            if (this.getMaxTime() >= 1 && timing > this.getMaxTime()) {
-                throw new MybatisPlusException(" The SQL execution time is too large, please optimize ! ");
-            }
+            Assert.isFalse(this.getMaxTime() >= 1 && timing > this.getMaxTime(),
+                " The SQL execution time is too large, please optimize ! ");
         }
         return result;
     }

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

@@ -15,26 +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.exceptions.MybatisPlusException;
 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.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;
 
 
 /**
@@ -142,7 +132,7 @@ public class DialectFactory {
                         DIALECT_CACHE.put(dialectClazz, dialect);
                     }
                 } catch (ClassNotFoundException e) {
-                    throw new MybatisPlusException("Class :" + dialectClazz + " is not found");
+                    throw ExceptionUtils.mpe("Class :" + dialectClazz + " is not found");
                 }
             } else {
                 // 缓存方言
@@ -150,9 +140,7 @@ public class DialectFactory {
                 DIALECT_CACHE.put(dbType.getDb(), dialect);
             }
             /* 未配置方言则抛出异常 */
-            if (dialect == null) {
-                throw new MybatisPlusException("The value of the dialect property in mybatis configuration.xml is not defined.");
-            }
+            Assert.notNull(dialect, "The value of the dialect property in mybatis configuration.xml is not defined.");
         }
         return dialect;
     }
@@ -197,7 +185,6 @@ public class DialectFactory {
         if (dbType == DbType.SQLITE) {
             return new SQLiteDialect();
         }
-        throw new MybatisPlusException("The Database's Not Supported! DBType:" + dbType);
+        throw ExceptionUtils.mpe("The Database's Not Supported! DBType:" + dbType);
     }
-
 }

+ 27 - 38
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/spring/MybatisSqlSessionFactoryBean.java

@@ -15,24 +15,17 @@
  */
 package com.baomidou.mybatisplus.extension.spring;
 
-import static org.springframework.util.Assert.notNull;
-import static org.springframework.util.Assert.state;
-import static org.springframework.util.ObjectUtils.isEmpty;
-import static org.springframework.util.StringUtils.hasLength;
-import static org.springframework.util.StringUtils.tokenizeToStringArray;
-
-import java.io.IOException;
-import java.sql.Connection;
-import java.sql.SQLException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Properties;
-import java.util.Set;
-
-import javax.sql.DataSource;
-
+import com.baomidou.mybatisplus.core.MybatisConfiguration;
+import com.baomidou.mybatisplus.core.MybatisXMLConfigBuilder;
+import com.baomidou.mybatisplus.core.config.GlobalConfig;
+import com.baomidou.mybatisplus.core.enums.IEnum;
+import com.baomidou.mybatisplus.core.toolkit.Assert;
+import com.baomidou.mybatisplus.core.toolkit.ExceptionUtils;
+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;
 import org.apache.ibatis.builder.xml.XMLMapperBuilder;
 import org.apache.ibatis.cache.Cache;
 import org.apache.ibatis.executor.ErrorContext;
@@ -62,17 +55,17 @@ import org.springframework.core.NestedIOException;
 import org.springframework.core.io.Resource;
 import org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy;
 
-import com.baomidou.mybatisplus.core.MybatisConfiguration;
-import com.baomidou.mybatisplus.core.MybatisXMLConfigBuilder;
-import com.baomidou.mybatisplus.core.config.GlobalConfig;
-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;
+import javax.sql.DataSource;
+import java.io.IOException;
+import java.sql.Connection;
+import java.sql.SQLException;
+import java.util.*;
+
+import static org.springframework.util.Assert.notNull;
+import static org.springframework.util.Assert.state;
+import static org.springframework.util.ObjectUtils.isEmpty;
+import static org.springframework.util.StringUtils.hasLength;
+import static org.springframework.util.StringUtils.tokenizeToStringArray;
 
 /**
  * <p>
@@ -455,9 +448,7 @@ public class MybatisSqlSessionFactoryBean implements FactoryBean<SqlSessionFacto
                     }
                 }
             }
-            if (CollectionUtils.isEmpty(typeAliasPackageList)) {
-                throw new MybatisPlusException("not find typeAliasesPackage:" + typeAliasesPackage);
-            }
+            Assert.notEmpty(typeAliasPackageList, "not find typeAliasesPackage:" + typeAliasesPackage);
             for (String packageToScan : typeAliasPackageList) {
                 configuration.getTypeAliasRegistry().registerAliases(packageToScan,
                     typeAliasesSuperType == null ? Object.class : typeAliasesSuperType);
@@ -476,10 +467,8 @@ public class MybatisSqlSessionFactoryBean implements FactoryBean<SqlSessionFacto
             } else {
                 String[] typeEnumsPackageArray = tokenizeToStringArray(this.typeEnumsPackage,
                     ConfigurableApplicationContext.CONFIG_LOCATION_DELIMITERS);
-                if (typeEnumsPackageArray == null) {
-                    throw new MybatisPlusException("not find typeEnumsPackage:" + typeEnumsPackage);
-                }
-                classes = new HashSet<Class>();
+                Assert.notNull(typeEnumsPackageArray, "not find typeEnumsPackage:" + typeEnumsPackage);
+                classes = new HashSet<>();
                 for (String typePackage : typeEnumsPackageArray) {
                     classes.addAll(PackageHelper.scanTypePackage(typePackage));
                 }
@@ -568,7 +557,7 @@ public class MybatisSqlSessionFactoryBean implements FactoryBean<SqlSessionFacto
 
         configuration.setEnvironment(new Environment(this.environment, this.transactionFactory, this.dataSource));
         // 设置默认值
-        if(null == globalConfig) {
+        if (null == globalConfig) {
             globalConfig = GlobalConfigUtils.defaults();
         }
         // 设置元数据相关
@@ -578,7 +567,7 @@ public class MybatisSqlSessionFactoryBean implements FactoryBean<SqlSessionFacto
             //globalConfig.getDbConfig().setSqlKeywords(connection.getMetaData().getSQLKeywords());
             globalConfig.getDbConfig().setDbType(JdbcUtils.getDbType(connection.getMetaData().getURL()));
         } catch (Exception e) {
-            throw new MybatisPlusException("Error: GlobalConfigUtils setMetaData Fail !  Cause:" + e);
+            throw ExceptionUtils.mpe("Error: GlobalConfigUtils setMetaData Fail !  Cause:" + e);
         }
         SqlSessionFactory sqlSessionFactory = this.sqlSessionFactoryBuilder.build(configuration);
         // TODO SqlRunner

+ 4 - 7
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/toolkit/JdbcUtils.java

@@ -15,12 +15,11 @@
  */
 package com.baomidou.mybatisplus.extension.toolkit;
 
-import org.apache.ibatis.logging.Log;
-import org.apache.ibatis.logging.LogFactory;
-
 import com.baomidou.mybatisplus.annotation.DbType;
-import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
+import com.baomidou.mybatisplus.core.toolkit.Assert;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import org.apache.ibatis.logging.Log;
+import org.apache.ibatis.logging.LogFactory;
 
 /**
  * <p>
@@ -43,9 +42,7 @@ public class JdbcUtils {
      * @return
      */
     public static DbType getDbType(String jdbcUrl) {
-        if (StringUtils.isEmpty(jdbcUrl)) {
-            throw new MybatisPlusException("Error: The jdbcUrl is Null, Cannot read database type");
-        }
+        Assert.isFalse(StringUtils.isEmpty(jdbcUrl), "Error: The jdbcUrl is Null, Cannot read database type");
         if (jdbcUrl.startsWith("jdbc:mysql:") || jdbcUrl.startsWith("jdbc:cobar:")
             || jdbcUrl.startsWith("jdbc:log4jdbc:mysql:")) {
             return DbType.MYSQL;

+ 9 - 12
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/toolkit/PackageHelper.java

@@ -15,9 +15,8 @@
  */
 package com.baomidou.mybatisplus.extension.toolkit;
 
-import java.util.HashSet;
-import java.util.Set;
-
+import com.baomidou.mybatisplus.core.toolkit.Assert;
+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;
@@ -26,7 +25,8 @@ import org.springframework.core.type.classreading.MetadataReader;
 import org.springframework.core.type.classreading.MetadataReaderFactory;
 import org.springframework.util.ClassUtils;
 
-import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
+import java.util.HashSet;
+import java.util.Set;
 
 /**
  * <p>
@@ -73,10 +73,10 @@ public class PackageHelper {
             if (!set.isEmpty()) {
                 return set.toArray(new String[]{});
             } else {
-                throw new MybatisPlusException("not find typeAliasesPackage:" + pkg);
+                throw ExceptionUtils.mpe("not find typeAliasesPackage:" + pkg);
             }
         } catch (Exception e) {
-            throw new MybatisPlusException("not find typeAliasesPackage:" + pkg, e);
+            throw ExceptionUtils.mpe("not find typeAliasesPackage:" + pkg, e);
         }
     }
 
@@ -110,13 +110,10 @@ public class PackageHelper {
                     }
                 }
             }
-            if (set.isEmpty()) {
-                throw new MybatisPlusException("not find scanTypePackage:" + pkg);
-            } else {
-                return set;
-            }
+            Assert.isFalse(set.isEmpty(), "not find scanTypePackage:" + pkg);
+            return set;
         } catch (Exception e) {
-            throw new MybatisPlusException("not find scanTypePackage:" + pkg, e);
+            throw ExceptionUtils.mpe("not find scanTypePackage:" + pkg, e);
         }
     }
 }

+ 8 - 18
mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/config/DataSourceConfig.java

@@ -15,27 +15,17 @@
  */
 package com.baomidou.mybatisplus.generator.config;
 
-import java.sql.Connection;
-import java.sql.DriverManager;
-import java.sql.SQLException;
-
 import com.baomidou.mybatisplus.annotation.DbType;
-import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
-import com.baomidou.mybatisplus.generator.config.converts.DB2TypeConvert;
-import com.baomidou.mybatisplus.generator.config.converts.MySqlTypeConvert;
-import com.baomidou.mybatisplus.generator.config.converts.OracleTypeConvert;
-import com.baomidou.mybatisplus.generator.config.converts.PostgreSqlTypeConvert;
-import com.baomidou.mybatisplus.generator.config.converts.SqlServerTypeConvert;
-import com.baomidou.mybatisplus.generator.config.querys.DB2Query;
-import com.baomidou.mybatisplus.generator.config.querys.MariadbQuery;
-import com.baomidou.mybatisplus.generator.config.querys.MySqlQuery;
-import com.baomidou.mybatisplus.generator.config.querys.OracleQuery;
-import com.baomidou.mybatisplus.generator.config.querys.PostgreSqlQuery;
-import com.baomidou.mybatisplus.generator.config.querys.SqlServerQuery;
-
+import com.baomidou.mybatisplus.core.toolkit.ExceptionUtils;
+import com.baomidou.mybatisplus.generator.config.converts.*;
+import com.baomidou.mybatisplus.generator.config.querys.*;
 import lombok.Data;
 import lombok.experimental.Accessors;
 
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.sql.SQLException;
+
 /**
  * <p>
  * 数据库配置
@@ -126,7 +116,7 @@ public class DataSourceConfig {
             } else if (driverName.contains("mariadb")) {
                 dbType = DbType.MARIADB;
             } else {
-                throw new MybatisPlusException("Unknown type of database!");
+                throw ExceptionUtils.mpe("Unknown type of database!");
             }
         }
         return dbType;