Переглянути джерело

添加方法,完善测试

miemie 7 роки тому
батько
коміт
12880fc6e8

+ 33 - 1
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/toolkit/sql/SqlScriptUtils.java

@@ -17,6 +17,7 @@ package com.baomidou.mybatisplus.core.toolkit.sql;
 
 import com.baomidou.mybatisplus.annotation.FieldStrategy;
 import com.baomidou.mybatisplus.core.toolkit.StringPool;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 
 /**
  * <p>
@@ -39,7 +40,7 @@ public final class SqlScriptUtils {
 
     /**
      * <p>
-     * 获取 带 if 标签的 sql
+     * 获取 带 if 标签的脚本
      * </p>
      *
      * @param sqlScript      sql 脚本片段
@@ -57,4 +58,35 @@ public final class SqlScriptUtils {
         }
         return String.format("<if test=\"%s != null\">%s</if>", property, sqlScript);
     }
+
+    /**
+     * <p>
+     * 获取 带 trim 标签的脚本
+     * </p>
+     *
+     * @param sqlScript       sql 脚本片段
+     * @param prefix          以...开头
+     * @param suffix          以...结尾
+     * @param prefixOverride  干掉最前一个...
+     * @param suffixOverrides 干掉最后一个...
+     * @return trim 脚本
+     */
+    public static String convertTrim(String sqlScript, String prefix, String suffix, String prefixOverride,
+                                     String suffixOverrides) {
+        StringBuilder sb = new StringBuilder();
+        sb.append("<trim");
+        if (StringUtils.isNotEmpty(prefix)) {
+            sb.append(StringPool.SPACE).append("prefix=\"").append(prefix).append("\"");
+        }
+        if (StringUtils.isNotEmpty(suffix)) {
+            sb.append(StringPool.SPACE).append("suffix=\"").append(suffix).append("\"");
+        }
+        if (StringUtils.isNotEmpty(prefixOverride)) {
+            sb.append(StringPool.SPACE).append("prefixOverride=\"").append(prefixOverride).append("\"");
+        }
+        if (StringUtils.isNotEmpty(suffixOverrides)) {
+            sb.append(StringPool.SPACE).append("suffixOverrides=\"").append(suffixOverrides).append("\"");
+        }
+        return sb.append(">").append(sqlScript).append("</trim>").toString();
+    }
 }

+ 7 - 0
mybatis-plus-core/src/test/java/com/baomidou/mybatisplus/core/test/EncryptTest.java

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.core.metadata.TableInfo;
 import com.baomidou.mybatisplus.core.toolkit.EncryptUtils;
 import com.baomidou.mybatisplus.core.toolkit.TableInfoHelper;
+import com.baomidou.mybatisplus.core.toolkit.sql.SqlScriptUtils;
 import lombok.Data;
 import org.junit.Assert;
 import org.junit.Test;
@@ -37,6 +38,12 @@ public class EncryptTest {
         System.out.println(info.getAllInsertSqlProperty());
         System.out.println("----------- AllSqlSet -----------");
         System.out.println(info.getAllSqlSet("ew.entity."));
+        System.out.println("----------- insert sql -----------");
+        String sql = "insert into table ";
+        sql += SqlScriptUtils.convertTrim(info.getAllInsertSqlColumn(), "(", ")", null, ",");
+        sql += " VALUES ";
+        sql += SqlScriptUtils.convertTrim(info.getAllInsertSqlProperty(), "(", ")", null, ",");
+        System.out.println(sql);
     }
 
     @Data