瀏覽代碼

fix: 596,顺带优化一下

miemie 6 年之前
父節點
當前提交
34816ae221

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

@@ -19,16 +19,12 @@ import com.baomidou.mybatisplus.core.conditions.AbstractLambdaWrapper;
 import com.baomidou.mybatisplus.core.conditions.segments.MergeSegments;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringPool;
-import com.baomidou.mybatisplus.core.toolkit.sql.SqlUtils;
 import com.baomidou.mybatisplus.core.toolkit.support.SFunction;
 
-import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.atomic.AtomicInteger;
 
-import static java.util.stream.Collectors.joining;
-
 /**
  * <p>
  * Lambda 更新封装
@@ -43,11 +39,12 @@ public class LambdaUpdateWrapper<T> extends AbstractLambdaWrapper<T, LambdaUpdat
     /**
      * SQL 更新字段内容,例如:name='1',age=2
      */
-    private List<String> sqlSet = new ArrayList<>();
+    private List<String> sqlSet;
 
-    LambdaUpdateWrapper(T entity, AtomicInteger paramNameSeq, Map<String, Object> paramNameValuePairs,
-                        MergeSegments mergeSegments) {
+    LambdaUpdateWrapper(T entity, List<String> sqlSet, AtomicInteger paramNameSeq,
+                        Map<String, Object> paramNameValuePairs, MergeSegments mergeSegments) {
         this.entity = entity;
+        this.sqlSet = sqlSet;
         this.paramNameSeq = paramNameSeq;
         this.paramNameValuePairs = paramNameValuePairs;
         this.expression = mergeSegments;
@@ -58,7 +55,7 @@ public class LambdaUpdateWrapper<T> extends AbstractLambdaWrapper<T, LambdaUpdat
         if (CollectionUtils.isEmpty(sqlSet)) {
             return null;
         }
-        return SqlUtils.stripSqlInjection(sqlSet.stream().collect(joining(StringPool.COMMA)));
+        return String.join(StringPool.COMMA, sqlSet);
     }
 
     public LambdaUpdateWrapper<T> set(SFunction<T, ?> column, Object val) {
@@ -74,6 +71,6 @@ public class LambdaUpdateWrapper<T> extends AbstractLambdaWrapper<T, LambdaUpdat
 
     @Override
     protected LambdaUpdateWrapper<T> instance(AtomicInteger paramNameSeq, Map<String, Object> paramNameValuePairs) {
-        return new LambdaUpdateWrapper<>(entity, paramNameSeq, paramNameValuePairs, new MergeSegments());
+        return new LambdaUpdateWrapper<>(entity, sqlSet, paramNameSeq, paramNameValuePairs, new MergeSegments());
     }
 }

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

@@ -15,19 +15,16 @@
  */
 package com.baomidou.mybatisplus.core.conditions.update;
 
-import static java.util.stream.Collectors.joining;
+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.List;
 import java.util.Map;
 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;
-import com.baomidou.mybatisplus.core.toolkit.sql.SqlUtils;
-
 /**
  * <p>
  * Update 条件封装
@@ -42,7 +39,7 @@ public class UpdateWrapper<T> extends AbstractWrapper<T, String, UpdateWrapper<T
     /**
      * SQL 更新字段内容,例如:name='1',age=2
      */
-    private List<String> sqlSet = new ArrayList<>();
+    private List<String> sqlSet;
 
     public UpdateWrapper() {
         // 如果无参构造函数,请注意实体 NULL 情况 SET 必须有否则 SQL 异常
@@ -51,12 +48,14 @@ public class UpdateWrapper<T> extends AbstractWrapper<T, String, UpdateWrapper<T
 
     public UpdateWrapper(T entity) {
         this.entity = entity;
+        this.sqlSet = new ArrayList<>();
         this.initNeed();
     }
 
-    private UpdateWrapper(T entity, AtomicInteger paramNameSeq, Map<String, Object> paramNameValuePairs,
-                          MergeSegments mergeSegments) {
+    private UpdateWrapper(T entity, List<String> sqlSet, AtomicInteger paramNameSeq,
+                          Map<String, Object> paramNameValuePairs, MergeSegments mergeSegments) {
         this.entity = entity;
+        this.sqlSet = sqlSet;
         this.paramNameSeq = paramNameSeq;
         this.paramNameValuePairs = paramNameValuePairs;
         this.expression = mergeSegments;
@@ -68,7 +67,7 @@ public class UpdateWrapper<T> extends AbstractWrapper<T, String, UpdateWrapper<T
      * </p>
      */
     public LambdaUpdateWrapper<T> lambda() {
-        return new LambdaUpdateWrapper<>(entity, paramNameSeq, paramNameValuePairs, expression);
+        return new LambdaUpdateWrapper<>(entity, sqlSet, paramNameSeq, paramNameValuePairs, expression);
     }
 
     @Override
@@ -76,7 +75,7 @@ public class UpdateWrapper<T> extends AbstractWrapper<T, String, UpdateWrapper<T
         if (CollectionUtils.isEmpty(sqlSet)) {
             return null;
         }
-        return SqlUtils.stripSqlInjection(sqlSet.stream().collect(joining(StringPool.COMMA)));
+        return String.join(StringPool.COMMA, sqlSet);
     }
 
     /**
@@ -126,6 +125,6 @@ public class UpdateWrapper<T> extends AbstractWrapper<T, String, UpdateWrapper<T
 
     @Override
     protected UpdateWrapper<T> instance(AtomicInteger paramNameSeq, Map<String, Object> paramNameValuePairs) {
-        return new UpdateWrapper<>(entity, paramNameSeq, paramNameValuePairs, new MergeSegments());
+        return new UpdateWrapper<>(entity, sqlSet, paramNameSeq, paramNameValuePairs, new MergeSegments());
     }
 }