From 08c4ea9f133c4edf854a0418c69498540960e3ba Mon Sep 17 00:00:00 2001 From: kuboryu Date: Sun, 23 Apr 2017 18:12:38 +0900 Subject: [PATCH] 20170423 --- com/rapide_act/CmnProperty.java | 50 +++- com/rapide_act/DataAccessObjects.java | 44 ++-- com/rapide_act/RapideMetaLoader.java | 205 ++++++++++++++++ com/rapide_act/RapideMetaUnloader.java | 434 ++++++++++++--------------------- rapide-act-1.0_src.zip | Bin 0 -> 25017 bytes rapide-act-1.1_src.zip | Bin 0 -> 26668 bytes 6 files changed, 427 insertions(+), 306 deletions(-) create mode 100644 com/rapide_act/RapideMetaLoader.java create mode 100644 rapide-act-1.0_src.zip create mode 100644 rapide-act-1.1_src.zip diff --git a/com/rapide_act/CmnProperty.java b/com/rapide_act/CmnProperty.java index e65d878..7cab140 100644 --- a/com/rapide_act/CmnProperty.java +++ b/com/rapide_act/CmnProperty.java @@ -71,16 +71,60 @@ public class CmnProperty{ protected static final int D_FILEEXT = 27; protected static final int D_SQLQUOTED = 28; protected static final int D_PHYSICAL = 29; - protected static final int KEYS = 30; + protected static final int D_DROP = 30; + protected static final int KEYS = 31; protected static final String [] PROP_KEY = { "us","pw","url","dr","out","in","ls","ils","fe","nm", "dm","ts","tks","od","qt","bc","it","et","ic","ec", - "icm","ecm","smc","dmc","mp","pf","sp","ext","sq", "ph"}; + "icm","ecm","smc","dmc","mp","pf","sp","ext","sq", "ph", "dp"}; protected String [] prop_val = new String[KEYS]; protected static final String [] MASK_PTN = {"ALL", "ALT", "EDGE"}; protected static final String DEFAULT_IN_FOLDER = "input"; protected static final String DEFAULT_OUT_FOLDER = "output"; protected static final String DEFAULT_PROP_FILE = "RapideAct.properties"; + + protected static final int CREATE_TABLE = 0; + protected static final int DROP_TABLE = 1; + protected static final int TRUNCATE_TABLE = 2; + protected static final int CREATE_PKEY = 3; + protected static final int DROP_PKEY = 4; + protected static final int CREATE_UKEY = 5; + protected static final int DROP_UKEY = 6; + protected static final int CREATE_INDEX = 7; + protected static final int DROP_INDEX = 8; + protected static final int CREATE_VIEW = 9; + protected static final int DROP_VIEW = 10; + protected static final int CREATE_PROCEDURE = 11; + protected static final int DROP_PROCEDURE = 12; + protected static final int CREATE_SYNONYM = 13; + protected static final int DROP_SYNONYM = 14; + protected static final int CREATE_SEQUENCE = 15; + protected static final int DROP_SEQUENCE = 16; + protected static final int CREATE_FK = 17; + protected static final int DROP_FK = 18; + + protected static final String [] SQL_FILE_NAME = { + "createTable.sql", + "dropTable.sql", + "truncateTable.sql", + "createPrimaryKey.sql", + "dropPrimaryKey.sql", + "createUniqueKey.sql", + "dropUniqueKey.sql", + "createIndex.sql", + "dropIndex.sql", + "createView.sql", + "dropView.sql", + "createProcedure.sql", + "dropProcedure.sql", + "createSynonym.sql", + "dropSynonym.sql", + "createSequence.sql", + "dropSequence.sql", + "createFk.sql", + "dropFk.sql" + }; + protected static final String [] T_SQL_ARRAY = { "select " + " table_name " @@ -287,6 +331,7 @@ public class CmnProperty{ protected boolean isOrder = false; protected boolean isQuotation = true; protected boolean isPhysical = false; + protected boolean isDrop = false; protected int batchCount = 1000; protected String inclTables = null; protected String exclTables = null; @@ -379,6 +424,7 @@ public class CmnProperty{ if(!CmnUtils.isEmpty(prop_val[D_ORDER]) && prop_val[D_ORDER].toUpperCase().equals("Y"))isOrder = true; if(!CmnUtils.isEmpty(prop_val[D_QUOTATION]) && prop_val[D_QUOTATION].toUpperCase().equals("N"))isQuotation = false; if(!CmnUtils.isEmpty(prop_val[D_PHYSICAL]) && prop_val[D_PHYSICAL].toUpperCase().equals("Y"))isPhysical = true; + if(!CmnUtils.isEmpty(prop_val[D_DROP]) && prop_val[D_DROP].toUpperCase().equals("Y"))isDrop = true; if(!CmnUtils.isEmpty(prop_val[D_BATCOUNT]) && CmnUtils.isNumeric(prop_val[D_BATCOUNT]))batchCount = Integer.parseInt(prop_val[D_BATCOUNT]); if(!CmnUtils.isEmpty(prop_val[D_INCLTAB]))isInclTables = true; if(!CmnUtils.isEmpty(prop_val[D_EXCLTAB]))isExclTables = true; diff --git a/com/rapide_act/DataAccessObjects.java b/com/rapide_act/DataAccessObjects.java index 5d6f71e..d3e8168 100644 --- a/com/rapide_act/DataAccessObjects.java +++ b/com/rapide_act/DataAccessObjects.java @@ -87,7 +87,7 @@ public class DataAccessObjects{ driver = cp.driver; } - public Connection connect() throws Exception{ + protected Connection connect() throws Exception{ try { CmnUtils.debugPrint("Start Driver class loading"); @@ -110,7 +110,7 @@ public class DataAccessObjects{ } } - public PreparedStatement prepareSql(String _sql) throws Exception{ + protected PreparedStatement prepareSql(String _sql) throws Exception{ try { CmnUtils.debugPrint("Start prepared Statement"); CmnUtils.debugPrint(_sql); @@ -126,7 +126,7 @@ public class DataAccessObjects{ } } - public void executeSql() throws Exception{ + protected void executeSql() throws Exception{ try { executeSql(stmt); @@ -161,7 +161,7 @@ public class DataAccessObjects{ } } - public void executeSql(PreparedStatement _stmt) throws Exception{ + protected void executeSql(PreparedStatement _stmt) throws Exception{ try { CmnUtils.debugPrint("Start execute Query"); @@ -200,19 +200,19 @@ public class DataAccessObjects{ } } - public void commit() throws Exception{ + protected void commit() throws Exception{ CmnUtils.debugPrint("Start commit"); conn.commit(); CmnUtils.debugPrint("End commit"); } - public void rollback() throws Exception{ + protected void rollback() throws Exception{ CmnUtils.debugPrint("Start rollback"); conn.rollback(); CmnUtils.debugPrint("End rollback"); } - public void closeRecordSet() throws Exception{ + protected void closeRecordSet() throws Exception{ if(rst != null){ rst.close(); rst = null; @@ -223,7 +223,7 @@ public class DataAccessObjects{ } } - public void select(String _sql) throws Exception{ + protected void select(String _sql) throws Exception{ PreparedStatement stmt; stmt = prepareSql(_sql); executeSql(stmt); @@ -231,53 +231,53 @@ public class DataAccessObjects{ closeRecordSet(); } - public int getColumnCount() throws Exception{ + protected int getColumnCount() throws Exception{ return ColumnCount; } - public int getRecCount() throws Exception{ + protected int getRecCount() throws Exception{ return recCount; } - public ArrayList getArrayList() throws Exception{ + protected ArrayList getArrayList() throws Exception{ return alData; } - public ArrayList getArrayColumnNameList() throws Exception{ + protected ArrayList getArrayColumnNameList() throws Exception{ return alColName; } - public ArrayList getArrayColumnTypeNameList() throws Exception{ + protected ArrayList getArrayColumnTypeNameList() throws Exception{ return alColTypeName; } - public ArrayList getArrayIsNullableList() throws Exception{ + protected ArrayList getArrayIsNullableList() throws Exception{ return alIsNullable; } - public ArrayList getArrayPrecisionList() throws Exception{ + protected ArrayList getArrayPrecisionList() throws Exception{ return alColPrecision; } - public void setArrayColumnMaskList(ArrayList _alColMask) throws Exception{ + protected void setArrayColumnMaskList(ArrayList _alColMask) throws Exception{ alColMask = _alColMask; colMask = (Boolean[])alColMask.toArray(new Boolean[0]); } - public void setArrayColumnInclList(ArrayList _alColIncl) throws Exception{ + protected void setArrayColumnInclList(ArrayList _alColIncl) throws Exception{ alColIncl = _alColIncl; colIncl = (Boolean[])alColIncl.toArray(new Boolean[0]); } - public void setTableName(String _tbName) throws Exception{ + protected void setTableName(String _tbName) throws Exception{ tbName = _tbName; } - public ResultSet getResultSet() throws Exception{ + protected ResultSet getResultSet() throws Exception{ return rst; } - public void getRecordToArray() throws Exception{ + protected void getRecordToArray() throws Exception{ try { CmnUtils.debugPrint("Start get RecordSet to Array"); while (rst.next()) { @@ -302,7 +302,7 @@ public class DataAccessObjects{ } } - public void getRecordToPrint(PrintWriter _pw, int _firstCol, int _lastCol) throws Exception{ + protected void getRecordToPrint(PrintWriter _pw, int _firstCol, int _lastCol) throws Exception{ try { CmnUtils.debugPrint("Start get Record to Print"); recCount = 0; @@ -668,7 +668,7 @@ public class DataAccessObjects{ } } - public void disconnect() throws Exception{ + protected void disconnect() throws Exception{ try { CmnUtils.debugPrint("Start disconnect database"); diff --git a/com/rapide_act/RapideMetaLoader.java b/com/rapide_act/RapideMetaLoader.java new file mode 100644 index 0000000..1163c1b --- /dev/null +++ b/com/rapide_act/RapideMetaLoader.java @@ -0,0 +1,205 @@ +package com.rapide_act; + +import java.io.BufferedInputStream; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.File; +import java.io.FileReader; +import java.io.FileWriter; +import java.io.BufferedWriter; +import java.io.BufferedReader; +import java.io.PrintWriter; +import java.io.PrintWriter; +import java.util.Date; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.Properties; +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.ResultSet; +import java.sql.ResultSetMetaData; +import java.sql.SQLException; +import java.sql.PreparedStatement; +import java.sql.Timestamp; +import java.sql.Blob; +import java.sql.Clob; + +public class RapideMetaLoader{ + + private String database = null; + + public static void main(String args[]){ + try { + if (args.length > 0){ + RapideMetaLoader RapideMetaLoader = new RapideMetaLoader(args[0]); + RapideMetaLoader.metaLoad(); + } else { + RapideMetaLoader RapideMetaLoader = new RapideMetaLoader(null); + RapideMetaLoader.metaLoad(); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + RapideMetaLoader(String _database) { + super(); + database = _database; + } + + + private void metaLoad(){ + Connection conn = null; + PreparedStatement stmt = null; + BufferedReader br = null; + File folder = null; + File subFolder = null; + String strLine = null; + String strMltLine = null; + String tbName = null; + String viewName = null; + String procName = null; + String [] flName = null; + File [] inFiles = null; + int tb_count = 0; + String [] sqlLine = null; + + CmnProperty cp = null; + DataAccessObjects dao = null; + + try { + cp = new CmnProperty(); + cp.setProperty(database); + + if (cp.dbType != cp.DB_TYPE_ORACLE){ + throw new Exception("ƒf[ƒ^ƒx[ƒX‚ª‘ΏۊO‚Å‚·B[" + cp.DB_TYPE_NAME[cp.dbType] + "]"); + } + if(cp.inFolder != null){ + folder = new File(cp.inFolder); + } else { + if (database != null){ + folder = new File(cp.DEFAULT_IN_FOLDER + "/DDL_" + database.toUpperCase()); + } else { + folder = new File(cp.DEFAULT_IN_FOLDER + "/DDL_" + cp.DB_TYPE_NAME[cp.dbType].toUpperCase()); + } + } + CmnUtils.infoPrint("-->“ü—ÍŒ³ƒtƒHƒ‹ƒ_='" + folder + "'"); + CmnUtils.infoPrint("ƒƒ^ƒf[ƒ^ƒ[ƒh‚ðŠJŽn‚µ‚Ü‚µ‚½B"); + + // Connect + dao = new DataAccessObjects(cp); + 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); + } + subFolder = new File(folder + "/TABLES"); + inFiles = subFolder.listFiles(); + tb_count = 0; + if(inFiles != null) { + for(int k=0;k 0) { + br[0] = new BufferedReader(new FileReader(folder + "/" + FILE_NAME[FL_FK] + "_" + database +".csv")); + pw[1] = new PrintWriter(new BufferedWriter(new FileWriter(new File(folder + "/" + cp.SQL_FILE_NAME[cp.CREATE_FK])))); + pw[2] = new PrintWriter(new BufferedWriter(new FileWriter(new File(folder + "/" + cp.SQL_FILE_NAME[cp.DROP_FK])))); + tbName = ""; + fkName = ""; + fkCol = ""; + fkColPos = ""; + rtbName = ""; + rfkName = ""; + rfkCol = ""; + rfkColPos = ""; + + while((strLine=br[0].readLine()) != null){ + strSplit = CmnUtils.splitCsv(strLine); + if(!fkName.equals(strSplit[1]) && !fkName.equals("")){ + pw[1].println("ALTER TABLE " + cp.sqlQuoted + tbName + cp.sqlQuoted + " ADD CONSTRAINT " + cp.sqlQuoted + fkName + " FOREIGN KEY (" + cp.sqlQuoted + fkCol + cp.sqlQuoted + ") REFERENCES " + cp.sqlQuoted + rtbName + cp.sqlQuoted + " (" + cp.sqlQuoted + rfkCol + cp.sqlQuoted + ");"); + pw[2].println("ALTER TABLE " + cp.sqlQuoted + tbName + cp.sqlQuoted + " DROP CONSTRAINT " + cp.sqlQuoted + fkName + ";"); + for(int i=0;i(); int rowNo; String [] rowData; @@ -921,7 +854,7 @@ public class RapideMetaUnloader{ } while((strLine=br[1].readLine()) != null){ strSplit = CmnUtils.splitSpace(strLine); - rowNo = CmnUtils.getArrayRowNo(alData, 12, 1, strSplit[5]); + rowNo = CmnUtils.getArrayRowNo(alData, 12, 1, strSplit[5].replaceAll(cp.sqlQuoted,"")); if (rowNo != -1){ rowData = rowData = CmnUtils.getArrayRowData(alData, 12, rowNo); CmnUtils.debugPrint(strSplit[5] + ":" + rowNo); @@ -944,7 +877,7 @@ public class RapideMetaUnloader{ if(!freeLst.equals(""))pw[1].print(" FREELISTS " + freeLst); if(!flstGrp.equals(""))pw[1].print(" FREELIST GROUPS " + flstGrp); pw[1].print(" BUFFER_POOL " + bufPool + ")"); - pw[1].print(" TABLESPACE " + "\"" + tblSpace + "\""); + pw[1].print(" TABLESPACE " + cp.sqlQuoted + tblSpace + cp.sqlQuoted); if(logging.equals("NO")){ pw[1].println(" NOLOGGING;"); } else { @@ -957,7 +890,7 @@ public class RapideMetaUnloader{ } while((strLine=br[2].readLine()) != null){ strSplit = CmnUtils.splitSpace(strLine); - rowNo = CmnUtils.getArrayRowNo(alData, 12, 1, strSplit[5]); + rowNo = CmnUtils.getArrayRowNo(alData, 12, 1, strSplit[5].replaceAll(cp.sqlQuoted,"")); if (rowNo != -1){ rowData = rowData = CmnUtils.getArrayRowData(alData, 12, rowNo); CmnUtils.debugPrint(strSplit[5] + ":" + rowNo); @@ -980,7 +913,7 @@ public class RapideMetaUnloader{ if(!freeLst.equals(""))pw[2].print(" FREELISTS " + freeLst); if(!flstGrp.equals(""))pw[2].print(" FREELIST GROUPS " + flstGrp); pw[2].print(" BUFFER_POOL " + bufPool + ")"); - pw[2].print(" TABLESPACE " + "\"" + tblSpace + "\""); + pw[2].print(" TABLESPACE " + cp.sqlQuoted + tblSpace + cp.sqlQuoted); if(logging.equals("NO")){ pw[2].println(" NOLOGGING;"); } else { @@ -993,10 +926,10 @@ public class RapideMetaUnloader{ } while((strLine=br[3].readLine()) != null){ strSplit = CmnUtils.splitSpace(strLine); - rowNo = CmnUtils.getArrayRowNo(alData, 12, 1, strSplit[2]); + rowNo = CmnUtils.getArrayRowNo(alData, 12, 1, strSplit[2].replaceAll(cp.sqlQuoted,"")); + CmnUtils.debugPrint("rowNo=" + rowNo); if (rowNo != -1){ rowData = CmnUtils.getArrayRowData(alData, 12, rowNo); - CmnUtils.debugPrint(strSplit[2] + ":" + rowNo); for(int i=0;i" + toFl[i].toString()); toFl[i].delete(); @@ -1084,7 +1017,7 @@ public class RapideMetaUnloader{ if(!freeLst.equals(""))pw[0].print(" FREELISTS " + freeLst); if(!flstGrp.equals(""))pw[0].print(" FREELIST GROUPS " + flstGrp); pw[0].print(" BUFFER_POOL " + bufPool + ")"); - pw[0].print(" TABLESPACE " + "\"" + tblSpace + "\""); + pw[0].print(" TABLESPACE " + cp.sqlQuoted + tblSpace + cp.sqlQuoted); if(logging.equals("NO")){ pw[0].println(" NOLOGGING;"); } else { @@ -1107,69 +1040,6 @@ public class RapideMetaUnloader{ } // Rhysical Contents end - // Fk Contents start - File csvFile = new File(folder + "/" + FILE_NAME[FL_FK] + "_" + database +".csv"); - if (csvFile.length() > 0) { - br[0] = new BufferedReader(new FileReader(folder + "/" + FILE_NAME[FL_FK] + "_" + database +".csv")); - pw[1] = new PrintWriter(new BufferedWriter(new FileWriter(new File(folder + "/" + "createFk.sql")))); - pw[2] = new PrintWriter(new BufferedWriter(new FileWriter(new File(folder + "/" + "dropFk.sql")))); - pw[3] = new PrintWriter(new BufferedWriter(new FileWriter(new File(folder + "/" + "enableFk.sql")))); - pw[4] = new PrintWriter(new BufferedWriter(new FileWriter(new File(folder + "/" + "disableFk.sql")))); - tbName = ""; - fkName = ""; - fkCol = ""; - fkColPos = ""; - rtbName = ""; - rfkName = ""; - rfkCol = ""; - rfkColPos = ""; - - while((strLine=br[0].readLine()) != null){ - strSplit = CmnUtils.splitCsv(strLine); - if(!fkName.equals(strSplit[1]) && !fkName.equals("")){ - pw[1].println("ALTER TABLE \"" + tbName + "\" ADD CONSTRAINT \"" + fkName + "\" FOREIGN KEY (\"" + fkCol + "\") REFERENCES \"" + rtbName + "\" (\"" + rfkCol + "\");"); - pw[2].println("ALTER TABLE \"" + tbName + "\" DROP CONSTRAINT \"" + fkName + "\";"); - pw[3].println("ALTER TABLE \"" + tbName + "\" ENABLE CONSTRAINT \"" + fkName + "\";"); - pw[4].println("ALTER TABLE \"" + tbName + "\" DISABLE CONSTRAINT \"" + fkName + "\";"); - for(int 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 literal 0 HcmV?d00001 diff --git a/rapide-act-1.1_src.zip b/rapide-act-1.1_src.zip new file mode 100644 index 0000000000000000000000000000000000000000..8e14fe5ea0f57100b378aa15aff050abf6909025 GIT binary patch literal 26668 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 PeGo!JK)ihTbN0UgBaQrd literal 0 HcmV?d00001 -- 2.11.0