Browse Source

修复空sql问题

zhouhao 7 years ago
parent
commit
c782675d79

+ 7 - 4
hsweb-commons/hsweb-commons-utils/src/main/java/org/hswebframework/web/Sqls.java

@@ -1,12 +1,12 @@
 package org.hswebframework.web;
 
+import org.springframework.util.StringUtils;
+
 import java.util.ArrayList;
 import java.util.List;
 import java.util.stream.Stream;
 
 /**
- * TODO 完成注释
- *
  * @author zhouhao
  */
 public class Sqls {
@@ -20,11 +20,14 @@ public class Sqls {
                 .forEach(s1 -> {
                     if (s1.trim().endsWith(";")) {
                         s1 = s1.trim();
-                        tmp.add(s1.substring(0, s1.length() - 1));
+                        s1 = s1.substring(0, s1.length() - 1);
+                        if (!StringUtils.isEmpty(s1))
+                            tmp.add(s1);
                         sqlList.add(String.join("\n", tmp.toArray(new String[tmp.size()])));
                         tmp.clear();
                     } else {
-                        tmp.add(s1);
+                        if (!StringUtils.isEmpty(s1))
+                            tmp.add(s1);
                     }
                 });
         sqlList.add(String.join("\n", tmp.toArray(new String[tmp.size()])));

+ 2 - 0
hsweb-system/hsweb-system-schedule/hsweb-system-schedule-starter/src/main/java/org/hswebframework/web/schedule/configuration/AutoCreateTable.java

@@ -9,6 +9,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.CommandLineRunner;
 import org.springframework.core.io.Resource;
 import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
+import org.springframework.util.StringUtils;
 
 import java.io.BufferedReader;
 import java.io.FileReader;
@@ -45,6 +46,7 @@ public class AutoCreateTable implements CommandLineRunner {
                 String str = FileUtils.reader2String(reader);
                 List<String> sqlList = Sqls.parse(str);
                 for (String sql : sqlList) {
+                    if (StringUtils.isEmpty(sql)) return;
                     sqlExecutor.exec(sql);
                 }
             }