Hu Jie 6 жил өмнө
parent
commit
3decb5fd95

+ 1 - 0
build.gradle

@@ -51,6 +51,7 @@ dependencyManagement {
 dependencies {
     compile 'org.springframework.boot:spring-boot-starter-data-jpa'
     compile "org.springframework.boot:spring-boot-starter-web"
+    compile "commons-io:commons-io:2.6"
     testCompile "org.springframework.boot:spring-boot-starter-test"
     compile "com.h2database:h2"
     compile "com.oracle:ojdbc6:11.2.0"

+ 3 - 0
src/main/java/com/uas/erp/database/api/v1/DBAController.java

@@ -3,6 +3,7 @@ package com.uas.erp.database.api.v1;
 import com.uas.erp.database.entity.DBA;
 import com.uas.erp.database.service.DBAService;
 import com.uas.erp.database.service.MasterService;
+import com.uas.erp.database.support.BackupDBFileUtils;
 import com.uas.erp.database.web.ResponseWrap;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.ResponseEntity;
@@ -29,6 +30,7 @@ public class DBAController {
     @PostMapping
     public ResponseEntity save(DBA dba) {
         dbaService.save(dba);
+        BackupDBFileUtils.createFile();
         masterService.scanAll();
         return ResponseWrap.ok();
     }
@@ -36,6 +38,7 @@ public class DBAController {
     @DeleteMapping(path = "/{id}")
     public ResponseEntity delete(@PathVariable("id") long id) {
         dbaService.delete(id);
+        BackupDBFileUtils.createFile();
         masterService.scanAll();
         return ResponseWrap.ok();
     }

+ 9 - 1
src/main/java/com/uas/erp/database/service/MasterService.java

@@ -3,6 +3,7 @@ package com.uas.erp.database.service;
 import com.uas.erp.database.domain.Master;
 import com.uas.erp.database.domain.MasterView;
 import com.uas.erp.database.entity.DBA;
+import com.uas.erp.database.support.BackupDBFileUtils;
 import org.springframework.beans.factory.InitializingBean;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -29,11 +30,18 @@ public class MasterService implements InitializingBean{
      */
     public void scanAll() {
         masters = new ConcurrentSkipListSet<>();
-        List<DBA> dbas = dbaService.findAll();
+        List<DBA> dbas = null;
+        try {
+            dbas = dbaService.findAll();
+        } catch (Exception e) {
+            BackupDBFileUtils.reserveFile();
+        }
         if (!CollectionUtils.isEmpty(dbas)) {
             for (DBA dba : dbas) {
                 masters.addAll(dbaService.getMasters(dba));
             }
+        } else {
+            BackupDBFileUtils.reserveFile();
         }
     }
 

+ 35 - 0
src/main/java/com/uas/erp/database/support/BackupDBFileUtils.java

@@ -0,0 +1,35 @@
+package com.uas.erp.database.support;
+
+import org.apache.commons.io.FileUtils;
+
+import java.io.File;
+import java.io.IOException;
+
+/**
+ * @Author: h2数据库备份
+ * @Date: Created in 15:44 2019/02/21.
+ */
+public class BackupDBFileUtils {
+
+    public static void createFile() {
+        copyFile("~/data/uas_database.mv.db", "~/backup/uas_database.mv.db");
+        copyFile("~/data/uas_database.trace.db", "~/backup/uas_database.trace.db");
+    }
+
+    public static void reserveFile() {
+        copyFile("~/backup/uas_database.mv.db", "~/data/uas_database.mv.db");
+        copyFile("~/backup/uas_database.trace.db", "~/data/uas_database.trace.db");
+    }
+
+    private static void copyFile(String sourcePath, String targetPath) {
+        File source = new File(sourcePath);
+        File target = new File(targetPath);
+        if (source.exists()) {
+            try {
+                FileUtils.copyFile(source, target);
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+        }
+    }
+}