diff --git a/mybatis-flex-core/src/main/java/com/mybatisflex/core/audit/AuditMessage.java b/mybatis-flex-core/src/main/java/com/mybatisflex/core/audit/AuditMessage.java index d53f0e95..6d69a496 100644 --- a/mybatis-flex-core/src/main/java/com/mybatisflex/core/audit/AuditMessage.java +++ b/mybatis-flex-core/src/main/java/com/mybatisflex/core/audit/AuditMessage.java @@ -16,6 +16,7 @@ package com.mybatisflex.core.audit; import com.mybatisflex.core.mybatis.TypeHandlerObject; +import com.mybatisflex.core.util.ClassUtil; import com.mybatisflex.core.util.DateUtil; import java.io.Serializable; @@ -129,13 +130,7 @@ public class AuditMessage implements Serializable { queryParams = new ArrayList<>(); } for (Object object : objects) { - if (object != null && (object.getClass().isArray() - || object.getClass() == int[].class - || object.getClass() == long[].class - || object.getClass() == short[].class - || object.getClass() == float[].class - || object.getClass() == double[].class) - ) { + if (object != null && ClassUtil.isArray(object.getClass())) { for (int i = 0; i < Array.getLength(object); i++) { addParams(Array.get(object, i)); } @@ -187,7 +182,7 @@ public class AuditMessage implements Serializable { return (PreparedStatement) Proxy.newProxyInstance( AuditMessage.class.getClassLoader(), new Class[]{PreparedStatement.class}, (proxy, method, args) -> { - if (args != null && args.length == 2){ + if (args != null && args.length == 2) { addParams(args[1]); } return null; diff --git a/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/QueryCondition.java b/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/QueryCondition.java index 178318b6..9eb70d9e 100644 --- a/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/QueryCondition.java +++ b/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/QueryCondition.java @@ -17,6 +17,7 @@ package com.mybatisflex.core.query; import com.mybatisflex.core.dialect.IDialect; +import com.mybatisflex.core.util.ClassUtil; import java.io.Serializable; import java.lang.reflect.Array; @@ -254,12 +255,7 @@ public class QueryCondition implements Serializable { Object[] values = (Object[]) value; int paramsCount = 0; for (Object object : values) { - if (object != null && (object.getClass().isArray() - || object.getClass() == int[].class - || object.getClass() == long[].class - || object.getClass() == short[].class - || object.getClass() == float[].class - || object.getClass() == double[].class)) { + if (object != null && ClassUtil.isArray(object.getClass())) { paramsCount += Array.getLength(object); } else { paramsCount++; diff --git a/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/WrapperUtil.java b/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/WrapperUtil.java index 41e16a14..b0db6a7d 100644 --- a/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/WrapperUtil.java +++ b/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/WrapperUtil.java @@ -16,6 +16,7 @@ package com.mybatisflex.core.query; +import com.mybatisflex.core.util.ClassUtil; import com.mybatisflex.core.util.CollectionUtil; import com.mybatisflex.core.util.StringUtil; @@ -104,12 +105,7 @@ class WrapperUtil { if (value.getClass().isArray()) { Object[] values = (Object[]) value; for (Object object : values) { - if (object != null && (object.getClass().isArray() - || object.getClass() == int[].class - || object.getClass() == long[].class - || object.getClass() == short[].class - || object.getClass() == float[].class - || object.getClass() == double[].class)) { + if (object != null && ClassUtil.isArray(object.getClass())) { for (int i = 0; i < Array.getLength(object); i++) { paras.add(Array.get(object, i)); } diff --git a/mybatis-flex-core/src/main/java/com/mybatisflex/core/util/ClassUtil.java b/mybatis-flex-core/src/main/java/com/mybatisflex/core/util/ClassUtil.java index 0cbdb1ba..b3e9e523 100644 --- a/mybatis-flex-core/src/main/java/com/mybatisflex/core/util/ClassUtil.java +++ b/mybatis-flex-core/src/main/java/com/mybatisflex/core/util/ClassUtil.java @@ -95,6 +95,16 @@ public class ClassUtil { } + public static boolean isArray(Class clazz) { + return clazz.isArray() + || clazz == int[].class + || clazz == long[].class + || clazz == short[].class + || clazz == float[].class + || clazz == double[].class; + } + + public static T newInstance(Class clazz) { try { Constructor defaultConstructor = null;