diff --git a/src/main/java/com/github/mybatisplus/interceptor/MyResultInterceptor.java b/src/main/java/com/github/mybatisplus/interceptor/MyResultInterceptor.java
index b910368..f847f5d 100644
--- a/src/main/java/com/github/mybatisplus/interceptor/MyResultInterceptor.java
+++ b/src/main/java/com/github/mybatisplus/interceptor/MyResultInterceptor.java
@@ -1,6 +1,5 @@
package com.github.mybatisplus.interceptor;
-import com.baomidou.mybatisplus.core.MybatisParameterHandler;
import com.baomidou.mybatisplus.core.toolkit.ClassUtils;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.github.mybatisplus.toolkit.Constant;
diff --git a/src/main/java/com/github/mybatisplus/interceptor/MybatisParameterHandler.java b/src/main/java/com/github/mybatisplus/interceptor/MybatisParameterHandler.java
new file mode 100644
index 0000000..19d1b5c
--- /dev/null
+++ b/src/main/java/com/github/mybatisplus/interceptor/MybatisParameterHandler.java
@@ -0,0 +1,205 @@
+package com.github.mybatisplus.interceptor;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.core.incrementer.IdentifierGenerator;
+import com.baomidou.mybatisplus.core.metadata.TableInfo;
+import com.baomidou.mybatisplus.core.metadata.TableInfoHelper;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
+import com.baomidou.mybatisplus.core.toolkit.GlobalConfigUtils;
+import com.baomidou.mybatisplus.core.toolkit.ReflectionKit;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import org.apache.ibatis.executor.ErrorContext;
+import org.apache.ibatis.executor.parameter.ParameterHandler;
+import org.apache.ibatis.mapping.*;
+import org.apache.ibatis.reflection.MetaObject;
+import org.apache.ibatis.session.Configuration;
+import org.apache.ibatis.type.JdbcType;
+import org.apache.ibatis.type.TypeException;
+import org.apache.ibatis.type.TypeHandler;
+import org.apache.ibatis.type.TypeHandlerRegistry;
+
+import java.sql.PreparedStatement;
+import java.sql.SQLException;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * copy {@link com.baomidou.mybatisplus.core.MybatisParameterHandler}
+ *
+ * 兼容3.4以下
+ */
+public class MybatisParameterHandler implements ParameterHandler {
+
+ private final TypeHandlerRegistry typeHandlerRegistry;
+ private final MappedStatement mappedStatement;
+ private final Object parameterObject;
+ private final BoundSql boundSql;
+ private final Configuration configuration;
+ private final SqlCommandType sqlCommandType;
+
+ public MybatisParameterHandler(MappedStatement mappedStatement, Object parameter, BoundSql boundSql) {
+ this.typeHandlerRegistry = mappedStatement.getConfiguration().getTypeHandlerRegistry();
+ this.mappedStatement = mappedStatement;
+ this.boundSql = boundSql;
+ this.configuration = mappedStatement.getConfiguration();
+ this.sqlCommandType = mappedStatement.getSqlCommandType();
+ this.parameterObject = processParameter(parameter);
+ }
+
+ public Object processParameter(Object parameter) {
+ /* 只处理插入或更新操作 */
+ if (parameter != null
+ && (SqlCommandType.INSERT == this.sqlCommandType || SqlCommandType.UPDATE == this.sqlCommandType)) {
+ //检查 parameterObject
+ if (ReflectionKit.isPrimitiveOrWrapper(parameter.getClass())
+ || parameter.getClass() == String.class) {
+ return parameter;
+ }
+ Collection