Quellcode durchsuchen

解压zip包方法从hutool替换为commons.compress
修改记录数据库的地址

小王 vor 11 Monaten
Ursprung
Commit
39f1185cc7
2 geänderte Dateien mit 23 neuen und 21 gelöschten Zeilen
  1. 5 0
      pom.xml
  2. 18 21
      src/main/java/com/example/bigsql/service/CreateDatabasesByV3File.java

+ 5 - 0
pom.xml

@@ -81,6 +81,11 @@
             <artifactId>jsch</artifactId> <!-- 解决 sftp 连接 -->
             <version>0.1.55</version>
         </dependency>
+        <dependency>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>commons-compress</artifactId>
+            <version>1.21</version>
+        </dependency>
     </dependencies>
 
     <build>

+ 18 - 21
src/main/java/com/example/bigsql/service/CreateDatabasesByV3File.java

@@ -69,7 +69,7 @@ public class CreateDatabasesByV3File {
         PreparedStatement ps = null;
         ResultSet rs = null;
         try {
-            String url = "jdbc:mysql://192.168.10.85:3306/data_center_v3?allowMultiQueries=true&useUnicode=true&useSSL=false&characterEncoding=UTF-8&rewriteBatchedStatements=true&serverTimezone=Asia/Shanghai&autoReconnect=true&nullCatalogMeansCurrent=true";
+            String url = "jdbc:mysql://192.168.12.10:23306/data_center_v3?allowMultiQueries=true&useUnicode=true&useSSL=false&characterEncoding=UTF-8&rewriteBatchedStatements=true&serverTimezone=Asia/Shanghai&autoReconnect=true&nullCatalogMeansCurrent=true";
             //加载数据库驱动
             Class.forName("com.mysql.cj.jdbc.Driver");
             conn = DriverManager.getConnection(url, "root", "la!yibei82nianxueB");
@@ -108,7 +108,7 @@ public class CreateDatabasesByV3File {
         Connection conn = null;
         PreparedStatement ps = null;
         try {
-            String url = "jdbc:mysql://192.168.10.85:3306/data_center_v3?allowMultiQueries=true&useUnicode=true&useSSL=false&characterEncoding=UTF-8&rewriteBatchedStatements=true&serverTimezone=Asia/Shanghai&autoReconnect=true&nullCatalogMeansCurrent=true";
+            String url = "jdbc:mysql://192.168.12.10:23306/data_center_v3?allowMultiQueries=true&useUnicode=true&useSSL=false&characterEncoding=UTF-8&rewriteBatchedStatements=true&serverTimezone=Asia/Shanghai&autoReconnect=true&nullCatalogMeansCurrent=true";
             //加载数据库驱动
             Class.forName("com.mysql.cj.jdbc.Driver");
             conn = DriverManager.getConnection(url, "root", "la!yibei82nianxueB");
@@ -129,22 +129,22 @@ public class CreateDatabasesByV3File {
 
     public static File[] searchFile(File folder, final String keyWord) {// 递归查找包含关键字的文件
 
-        File[] subFolders = folder.listFiles(new FileFilter() {// 运用内部匿名类获得文件
-            @Override
-            public boolean accept(File pathname) {// 实现FileFilter类的accept方法
-                // 目录或文件包含关键字
-                return pathname.isDirectory()
-                        || (pathname.isFile() && pathname.getName().toLowerCase().contains(keyWord.toLowerCase()));
-            }
+        // 运用内部匿名类获得文件
+        File[] subFolders = folder.listFiles(pathname -> {// 实现FileFilter类的accept方法
+            // 目录或文件包含关键字
+            return pathname.isDirectory()
+                    || (pathname.isFile() && pathname.getName().toLowerCase().contains(keyWord.toLowerCase()));
         });
 
         List<File> result = new ArrayList<File>();// 声明一个集合
-        for (int i = 0; i < subFolders.length; i++) {// 循环显示文件夹或文件
-            if (subFolders[i].isFile()) {// 如果是文件则将文件添加到结果列表中
-                result.add(subFolders[i]);
-            } else {// 如果是文件夹,则递归调用本方法,然后把所有的文件加到结果列表中
-                File[] foldResult = searchFile(subFolders[i], keyWord);
-                Collections.addAll(result, foldResult);
+        if (subFolders != null) {
+            for (File subFolder : subFolders) {// 循环显示文件夹或文件
+                if (subFolder.isFile()) {// 如果是文件则将文件添加到结果列表中
+                    result.add(subFolder);
+                } else {// 如果是文件夹,则递归调用本方法,然后把所有的文件加到结果列表中
+                    File[] foldResult = searchFile(subFolder, keyWord);
+                    Collections.addAll(result, foldResult);
+                }
             }
         }
 
@@ -214,10 +214,10 @@ public class CreateDatabasesByV3File {
                 log.info("开始解析sql文件,文件名:" + f.getName());
                 //场站编号
                 String name = f.getName().substring(0, 6);
-                //String csvFilePath = "/Users/xiaowang/个人/csvdir/" + name + File.separator;
                 String csvFilePath = "/home/bigsql/csvdir/" + name + File.separator;
                 String sqlPath = "/home/bigsql/sqldir/";
                 //String sqlPath = "/Users/xiaowang/个人/sqldir/";
+                //String csvFilePath = "/Users/xiaowang/个人/csvdir/" + name + File.separator;
                 //判断csvFilePath这个目录是否存在 如果不存在则创建目录
                 if (!new File(csvFilePath).exists()) {
                     new File(csvFilePath).mkdirs();
@@ -269,18 +269,15 @@ public class CreateDatabasesByV3File {
                             if (createDatabase(databasesName, conn)) {
                                 if (createTable(databasesName, sqlStatements, conn)) {
                                     flag = true;
+                                    log.info("执行数据库和数据表创建成功,其中数据共:{}", lineSize);
                                 }
+                                log.info("执行数据库和数据表创建失败,第{}次重复执行", lineSize + 1);
                                 num++;
                             }
                             if (num == 2) {
                                 break;
                             }
                         }
-                        if (flag) {
-                            log.info("执行数据库和数据表创建成功,其中数据共:" + lineSize);
-                        } else {
-                            log.info("执行数据库和数据表创建失败");
-                        }
                     } catch (IOException e) {
                         updateRecords(list.get(0).getId(), "2", databasesName);
                         throw new RuntimeException("读取Sql文件失败:  " + f.getName(), e);