OSDN Git Service

20170503
[rapideact/rapideact.git] / com / rapide_act / RapideMetaLoader.java
index 1163c1b..95eb070 100644 (file)
@@ -93,12 +93,12 @@ public class RapideMetaLoader{
                        conn = dao.connect();
 
                        if(cp.isDrop){
-                               executeSqlFile(dao, stmt, folder + "/" + cp.SQL_FILE_NAME[cp.DROP_TABLE], cp, true);
-                               executeSqlFile(dao, stmt, folder + "/" + cp.SQL_FILE_NAME[cp.DROP_VIEW], cp, true);
-                               executeSqlFile(dao, stmt, folder + "/" + cp.SQL_FILE_NAME[cp.DROP_PROCEDURE], cp, true);
-                               executeSqlFile(dao, stmt, folder + "/" + cp.SQL_FILE_NAME[cp.DROP_SYNONYM], cp, true);
-                               executeSqlFile(dao, stmt, folder + "/" + cp.SQL_FILE_NAME[cp.DROP_SEQUENCE], cp, true);
-                               executeSqlFile(dao, stmt, folder + "/" + cp.SQL_FILE_NAME[cp.DROP_FK], cp, true);
+                               executeSqlFile(dao, stmt, folder + "/" + cp.SQL_FILE_NAME[cp.DROP_TABLE], cp, true, false);
+                               executeSqlFile(dao, stmt, folder + "/" + cp.SQL_FILE_NAME[cp.DROP_VIEW], cp, true, false);
+                               executeSqlFile(dao, stmt, folder + "/" + cp.SQL_FILE_NAME[cp.DROP_PROCEDURE], cp, true, false);
+                               executeSqlFile(dao, stmt, folder + "/" + cp.SQL_FILE_NAME[cp.DROP_SYNONYM], cp, true, false);
+                               executeSqlFile(dao, stmt, folder + "/" + cp.SQL_FILE_NAME[cp.DROP_SEQUENCE], cp, true, false);
+                               executeSqlFile(dao, stmt, folder + "/" + cp.SQL_FILE_NAME[cp.DROP_FK], cp, true, false);
                        }
                        subFolder = new File(folder + "/TABLES");
                        inFiles = subFolder.listFiles();
@@ -107,12 +107,12 @@ public class RapideMetaLoader{
                                for(int k=0;k<inFiles.length;k++){
                                        flName = CmnUtils.splitDot(inFiles[k].getName());
                                        tbName = flName[0];
-                                       executeSqlFile(dao, stmt, subFolder + "/" + inFiles[k].getName(), cp, false);
+                                       executeSqlFile(dao, stmt, subFolder + "/" + inFiles[k].getName(), cp, false, false);
                                }
                        }
-                       executeSqlFile(dao, stmt, folder + "/" + cp.SQL_FILE_NAME[cp.CREATE_PKEY], cp, false);
-                       executeSqlFile(dao, stmt, folder + "/" + cp.SQL_FILE_NAME[cp.CREATE_UKEY], cp, false);
-                       executeSqlFile(dao, stmt, folder + "/" + cp.SQL_FILE_NAME[cp.CREATE_INDEX], cp, false);
+                       executeSqlFile(dao, stmt, folder + "/" + cp.SQL_FILE_NAME[cp.CREATE_PKEY], cp, false, false);
+                       executeSqlFile(dao, stmt, folder + "/" + cp.SQL_FILE_NAME[cp.CREATE_UKEY], cp, false, false);
+                       executeSqlFile(dao, stmt, folder + "/" + cp.SQL_FILE_NAME[cp.CREATE_INDEX], cp, false, false);
                        subFolder = new File(folder + "/VIEWS");
                        inFiles = subFolder.listFiles();
                        int view_count = 0;
@@ -120,7 +120,7 @@ public class RapideMetaLoader{
                                for(int k=0;k<inFiles.length;k++){
                                        flName = CmnUtils.splitDot(inFiles[k].getName());
                                        viewName = flName[0];
-                                       executeSqlFile(dao, stmt, subFolder + "/" + inFiles[k].getName(), cp, false);
+                                       executeSqlFile(dao, stmt, subFolder + "/" + inFiles[k].getName(), cp, false, false);
                                }
                        }
                        subFolder = new File(folder + "/PROCEDURES");
@@ -130,11 +130,12 @@ public class RapideMetaLoader{
                                for(int k=0;k<inFiles.length;k++){
                                        flName = CmnUtils.splitDot(inFiles[k].getName());
                                        procName = flName[0];
-                                       executeSqlFile(dao, stmt, subFolder + "/" + inFiles[k].getName(), cp, false);
+                                       executeSqlFile(dao, stmt, subFolder + "/" + inFiles[k].getName(), cp, false, true);
                                }
                        }
-                       executeSqlFile(dao, stmt, folder + "/" + cp.SQL_FILE_NAME[cp.CREATE_SEQUENCE], cp, false);
-                       executeSqlFile(dao, stmt, folder + "/" + cp.SQL_FILE_NAME[cp.CREATE_FK], cp, false);
+                       executeSqlFile(dao, stmt, folder + "/" + cp.SQL_FILE_NAME[cp.CREATE_SYNONYM], cp, false, false);
+                       executeSqlFile(dao, stmt, folder + "/" + cp.SQL_FILE_NAME[cp.CREATE_SEQUENCE], cp, false, false);
+                       executeSqlFile(dao, stmt, folder + "/" + cp.SQL_FILE_NAME[cp.CREATE_FK], cp, false, false);
 
                        CmnUtils.infoPrint("\83\81\83^\83f\81[\83^\83\8d\81[\83h\82ð\8fI\97¹\82µ\82Ü\82µ\82½\81B");
 
@@ -169,7 +170,7 @@ public class RapideMetaLoader{
                }
        }
        
-       private void executeSqlFile(DataAccessObjects _dao, PreparedStatement _stmt, String _infile, CmnProperty _cp, boolean _isResume) throws Exception{
+       private void executeSqlFile(DataAccessObjects _dao, PreparedStatement _stmt, String _infile, CmnProperty _cp, boolean _isResume, boolean _isReplace) throws Exception{
                BufferedReader br = null;
                String strLine = null;
                String strMltLine = "";
@@ -181,11 +182,10 @@ public class RapideMetaLoader{
                        while((strLine=br.readLine()) != null){
                                strMltLine += _cp.inColLineSeparator + strLine;
                        }
-                       sqlLine = CmnUtils.split(strMltLine, ";");
-                       for(int l = 0;l<sqlLine.length;l++){
-                               if(!sqlLine[l].equals("")){
+                       if(_isReplace){
+                               if(!strMltLine.equals("")){
                                        try {
-                                               _stmt = _dao.prepareSql(sqlLine[l]);
+                                               _stmt = _dao.prepareSql(strMltLine.replaceAll("\r",""));
                                                _stmt.executeUpdate();
                                                if(_stmt != null){
                                                        _stmt.close();
@@ -197,6 +197,24 @@ public class RapideMetaLoader{
                                                }
                                        }
                                }
+                       } else {
+                               sqlLine = CmnUtils.split(strMltLine, ";");
+                               for(int l = 0;l<sqlLine.length;l++){
+                                       if(!sqlLine[l].equals("")){
+                                               try {
+                                                       _stmt = _dao.prepareSql(sqlLine[l].replaceAll("\r",""));
+                                                       _stmt.executeUpdate();
+                                                       if(_stmt != null){
+                                                               _stmt.close();
+                                                               _stmt=null;
+                                                       }
+                                               } catch (Exception e) {
+                                                       if(!_isResume){
+                                                               throw e;
+                                                       }
+                                               }
+                                       }
+                               }
                        }
                }
        }