private ByteArrayOutputStream baos = null;
private boolean isQuotation = true;
private boolean isMask = false;
+ private boolean isInclMaskCols = false;
+ private boolean isExclMaskCols = false;
private String inclMaskCols = null;
private String exclMaskCols = null;
private String tbName = null;
private String nullMark = "";
+ private String lnSprtr = System.getProperty("line.separator");
+ private char singleByteChr = '*';
+ private char doubleByteChr = '\81\96';
+ private String maskPtn = "ALT";
private static final int MASK_PTN_ALL = 0;
private static final int MASK_PTN_ALT = 1;
private static final int MASK_PTN_EDGE = 2;
private static final String [] MASK_PTN = {"ALL", "ALT", "EDGE"};
-
+ private static final int USER = 0;
+ private static final int PASS = 1;
+ private static final int URL = 2;
+ private static final int DRIVER = 3;
+ private static final int OUTPUT = 4;
+ private static final int INPUT = 5;
+ private static final int LINESEP = 6;
+ private static final int INLINESEP = 7;
+ private static final int FILENCODE = 8;
+ private static final int NULLMARK = 9;
+ private static final int DELIMITER = 10;
+ private static final int TBLSQL = 11;
+ private static final int TBLKEYSQL = 12;
+ private static final int ORDER = 13;
+ private static final int QUOTATION = 14;
+ private static final int BATCOUNT = 15;
+ private static final int INCLTAB = 16;
+ private static final int EXCLTAB = 17;
+ private static final int INCLCOL = 18;
+ private static final int EXCLCOL = 19;
+ private static final int INCLCOLMASK = 20;
+ private static final int EXCLCOLMASK = 21;
+ private static final int SBYTEMASKCHR = 22;
+ private static final int DBYTEMASKCHR = 23;
+ private static final int MASKPTN = 24;
+ private static final int PROPFILE = 25;
+ private 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"};
+ private static final int KEYS = 26;
+ private String [] prop_val = null;
DataAccessObjects(String _user, String _pass, String _url, String _driver){
user = _user;
pass = _pass;
tbName = _tbName;
}
+ public void setPropVal(String[] _prop_val) throws Exception{
+ prop_val = _prop_val;
+ }
+
public ResultSet getResultSet() throws Exception{
return rst;
}
isQuotation = _isQuotation;
isMask = _isMask;
recCount = 0;
- String lnSprtr = CmnUtils.getLineSeparator("ls", System.getProperty("line.separator"));
- if(System.getProperty("nm")!= null)nullMark = System.getProperty("nm");
+ if(!CmnUtils.isEmpty(prop_val[LINESEP]))lnSprtr = CmnUtils.getLineSeparator(prop_val[LINESEP]);
+ if(!CmnUtils.isEmpty(prop_val[NULLMARK]))nullMark = prop_val[NULLMARK];
+
while (rst.next()) {
colString = null;
for(int i=0;i<ColumnCount;i++){
Clob colClob = null;
ByteArrayOutputStream baos = null;
InputStream is = null;
- boolean isQuotation = CmnUtils.getSystemProperty("qt", true);
- boolean isMask = CmnUtils.getSystemProperty("imc", false) || CmnUtils.getSystemProperty("emc", false);
- char hankakuMask = CmnUtils.getSystemProperty("hmm", '*');
- char zenkakuMask = CmnUtils.getSystemProperty("zmm", '\81\96');
- String maskPtn = CmnUtils.getSystemProperty("mp", MASK_PTN[MASK_PTN_ALT]);
+ if(!CmnUtils.isEmpty(prop_val[QUOTATION]) && prop_val[QUOTATION].toUpperCase().equals("N"))isQuotation = false;
+ if(!CmnUtils.isEmpty(prop_val[INCLCOLMASK]))isInclMaskCols = true;
+ if(!CmnUtils.isEmpty(prop_val[EXCLCOLMASK]))isExclMaskCols = true;
+ if(isInclMaskCols || isExclMaskCols)isMask = true;
+ if(!CmnUtils.isEmpty(prop_val[SBYTEMASKCHR]))singleByteChr = prop_val[SBYTEMASKCHR].charAt(0);
+ if(!CmnUtils.isEmpty(prop_val[DBYTEMASKCHR]))doubleByteChr = prop_val[DBYTEMASKCHR].charAt(0);
+ if(!CmnUtils.isEmpty(prop_val[MASKPTN]))maskPtn = prop_val[MASKPTN];
if (CmnUtils.isColString(_colTypeName)) {
colString = _rst.getString(_rec_cnt);
)
){
if(CmnUtils.isHankaku(colString.charAt(j))){
- sb.append(hankakuMask);
+ sb.append(singleByteChr);
} else {
- sb.append(zenkakuMask);
+ sb.append(doubleByteChr);
}
} else {
sb.append(colString.charAt(j));
import java.io.FileReader;
import java.io.FileWriter;
import java.io.InputStream;
+import java.io.InputStreamReader;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
private static final int MASK_PTN_ALT = 1;
private static final int MASK_PTN_EDGE = 2;
private static final String [] MASK_PTN = {"ALL", "ALT", "EDGE"};
+ private static final int USER = 0;
+ private static final int PASS = 1;
+ private static final int URL = 2;
+ private static final int DRIVER = 3;
+ private static final int OUTPUT = 4;
+ private static final int INPUT = 5;
+ private static final int LINESEP = 6;
+ private static final int INLINESEP = 7;
+ private static final int FILENCODE = 8;
+ private static final int NULLMARK = 9;
+ private static final int DELIMITER = 10;
+ private static final int TBLSQL = 11;
+ private static final int TBLKEYSQL = 12;
+ private static final int ORDER = 13;
+ private static final int QUOTATION = 14;
+ private static final int BATCOUNT = 15;
+ private static final int INCLTAB = 16;
+ private static final int EXCLTAB = 17;
+ private static final int INCLCOL = 18;
+ private static final int EXCLCOL = 19;
+ private static final int INCLCOLMASK = 20;
+ private static final int EXCLCOLMASK = 21;
+ private static final int SBYTEMASKCHR = 22;
+ private static final int DBYTEMASKCHR = 23;
+ private static final int MASKPTN = 24;
+ private static final int PROPFILE = 25;
+ private 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"
+ };
+ private static final int KEYS = 26;
+ private String [] prop_val = new String[KEYS];
+
private String propFile = "RapideLoader.properties";
private static String [] arySql_table_list = {
}
private void getProperties(String _propFile) throws Exception{
- InputStream is = null;
+ BufferedReader br = null;
Properties prop = null;
try {
prop = new Properties();
- is = RapideUnloader.class.getClassLoader().getResourceAsStream(_propFile);
- prop.load(is);
- user = prop.getProperty(database + "." + "us");
- pass = prop.getProperty(database + "." + "pw");
- url = prop.getProperty(database + "." + "url");
- driver = prop.getProperty(database + "." + "dr");
- is.close();
- is = null;
+ br = new BufferedReader(new InputStreamReader(new FileInputStream(_propFile), "UTF-8"));
+ prop.load(br);
+ for(int i=0;i<KEYS;i++){
+ prop_val[i] = prop.getProperty(database + "." +PROP_KEY[i]);
+ }
+ br.close();
+ br = null;
} catch (NullPointerException e) {
throw new Exception("Property File (" + _propFile +") Not Found");
} catch (IOException e) {
}
finally{
try {
- if (is != null) {
- is.close();
- is = null;
+ if (br != null) {
+ br.close();
+ br = null;
}
}
catch (IOException e) {
int tb_count = 0;
int tb_col_count = 0;
- boolean isOrder = CmnUtils.getSystemProperty("od", false);
- boolean isQuotation = CmnUtils.getSystemProperty("qt", true);
- boolean isInclTables = CmnUtils.getSystemProperty("it", false);
- boolean isExclTables = CmnUtils.getSystemProperty("et", false);
- boolean isInclCols = CmnUtils.getSystemProperty("ic", false);
- boolean isExclCols = CmnUtils.getSystemProperty("ec", false);
- boolean isMask = CmnUtils.getSystemProperty("imc", false) || CmnUtils.getSystemProperty("emc", false);
- boolean isInclMaskCols = CmnUtils.getSystemProperty("imc", false);
- boolean isExclMaskCols = CmnUtils.getSystemProperty("emc", false);
- String dlmtr = CmnUtils.getSeparator("dm", "\t");
- String lnSprtr = CmnUtils.getLineSeparator("ls", System.getProperty("line.separator"));
+ boolean isOrder = false;
+ boolean isQuotation = true;
+ boolean isInclTables = false;
+ boolean isExclTables = false;
+ boolean isInclCols = false;
+ boolean isExclCols = false;
+ boolean isMask = false;
+ boolean isInclMaskCols = false;
+ boolean isExclMaskCols = false;
+ String dlmtr = "\t";
+ String lnSprtr = System.getProperty("line.separator");
String defaultFldr = "output";
- String outFldr = System.getProperty("out");
- String inclTables = System.getProperty("it");
- String exclTables = System.getProperty("et");
- String inclCols = System.getProperty("ic");
- String exclCols = System.getProperty("ec");
- String inclMaskCols = System.getProperty("imc");
- String exclMaskCols = System.getProperty("emc");
- String [] aryInclTables = CmnUtils.getSystemProperty("it");
- String [] aryExclTables = CmnUtils.getSystemProperty("et");
- String [] aryInclMaskCols = CmnUtils.getSystemProperty("imc");
- String [] aryExclMaskCols = CmnUtils.getSystemProperty("emc");
- String [] aryInclCols = CmnUtils.getSystemProperty("ic");
- String [] aryExclCols = CmnUtils.getSystemProperty("ec");
- char hankakuMask = CmnUtils.getSystemProperty("hmm", '*');
- char zenkakuMask = CmnUtils.getSystemProperty("zmm", '\81\96');
- String maskPtn = CmnUtils.getSystemProperty("mp", "alt");
- String fileEncoding = CmnUtils.getSystemProperty("fe", System.getProperty("file.encoding"));
+ String outFldr = null;
+ String inclTables = null;
+ String exclTables = null;
+ String inclCols = null;
+ String exclCols = null;
+ String inclMaskCols = null;
+ String exclMaskCols = null;
+ String [] aryInclTables = null;
+ String [] aryExclTables = null;
+ String [] aryInclMaskCols = null;
+ String [] aryExclMaskCols = null;
+ String [] aryInclCols = null;
+ String [] aryExclCols = null;
+ char SingleByteChr = '*';
+ char DoubleByteChr = '\81\96';
+ String maskPtn = "ALT";
+ String fileEncoding = System.getProperty("file.encoding");
if(database != null){
if(System.getProperty("pf") != null){
} else {
getProperties(propFile);
}
- } else {
- user = System.getProperty("us");
- pass = System.getProperty("pw");
- url = System.getProperty("url");
- driver = System.getProperty("dr");
}
- CmnUtils.debugPrint("user=" + user);
- CmnUtils.debugPrint("password=" + pass);
- CmnUtils.debugPrint("url=" + url);
- CmnUtils.debugPrint("driver=" + driver);
+
+ for(int i=0;i<KEYS;i++){
+ if(System.getProperty(PROP_KEY[i])!=null)prop_val[i] = System.getProperty(PROP_KEY[i]);
+ CmnUtils.debugPrint(PROP_KEY[i] + "=" + prop_val[i]);
+ }
+
+ if(!CmnUtils.isEmpty(prop_val[USER]))user = prop_val[USER];
+ if(!CmnUtils.isEmpty(prop_val[PASS]))pass = prop_val[PASS];
+ if(!CmnUtils.isEmpty(prop_val[URL]))url = prop_val[URL];
+ if(!CmnUtils.isEmpty(prop_val[DRIVER]))driver = prop_val[DRIVER];
+ if(!CmnUtils.isEmpty(prop_val[ORDER]) && prop_val[ORDER].toUpperCase().equals("Y"))isOrder = true;
+ if(!CmnUtils.isEmpty(prop_val[QUOTATION]) && prop_val[QUOTATION].toUpperCase().equals("N"))isQuotation = false;
+ if(!CmnUtils.isEmpty(prop_val[INCLTAB]))isInclTables = true;
+ if(!CmnUtils.isEmpty(prop_val[EXCLTAB]))isExclTables = true;
+ if(!CmnUtils.isEmpty(prop_val[INCLCOL]))isInclCols = true;
+ if(!CmnUtils.isEmpty(prop_val[EXCLCOL]))isExclCols = true;
+ if(!CmnUtils.isEmpty(prop_val[INCLCOLMASK]))isInclMaskCols = true;
+ if(!CmnUtils.isEmpty(prop_val[EXCLCOLMASK]))isExclMaskCols = true;
+ if(isInclMaskCols || isExclMaskCols)isMask = true;
+ if(!CmnUtils.isEmpty(prop_val[DELIMITER]))dlmtr = CmnUtils.getDelimiter(prop_val[DELIMITER]);
+ if(!CmnUtils.isEmpty(prop_val[LINESEP]))lnSprtr = CmnUtils.getLineSeparator(prop_val[LINESEP]);
+ if(!CmnUtils.isEmpty(prop_val[OUTPUT]))outFldr = prop_val[OUTPUT];
+ if(!CmnUtils.isEmpty(prop_val[INCLTAB]))inclTables = prop_val[INCLTAB].toUpperCase();
+ if(!CmnUtils.isEmpty(prop_val[EXCLTAB]))exclTables = prop_val[EXCLTAB].toUpperCase();
+ if(!CmnUtils.isEmpty(prop_val[INCLCOL]))inclCols = prop_val[INCLCOL].toUpperCase();
+ if(!CmnUtils.isEmpty(prop_val[EXCLCOL]))exclCols = prop_val[EXCLCOL].toUpperCase();
+ if(!CmnUtils.isEmpty(prop_val[INCLCOLMASK]))inclMaskCols = prop_val[INCLCOLMASK].toUpperCase();
+ if(!CmnUtils.isEmpty(prop_val[EXCLCOLMASK]))exclMaskCols = prop_val[EXCLCOLMASK].toUpperCase();
+ if(!CmnUtils.isEmpty(prop_val[INCLTAB]))aryInclTables = CmnUtils.splitCsv(prop_val[INCLTAB].toUpperCase());
+ if(!CmnUtils.isEmpty(prop_val[EXCLTAB]))aryExclTables = CmnUtils.splitCsv(prop_val[EXCLTAB].toUpperCase());
+ if(!CmnUtils.isEmpty(prop_val[INCLCOL]))aryInclCols = CmnUtils.splitCsv(prop_val[INCLCOL].toUpperCase());
+ if(!CmnUtils.isEmpty(prop_val[EXCLCOL]))aryExclCols = CmnUtils.splitCsv(prop_val[EXCLCOL].toUpperCase());
+ if(!CmnUtils.isEmpty(prop_val[INCLCOLMASK]))aryInclMaskCols = CmnUtils.splitCsv(prop_val[INCLCOLMASK].toUpperCase());
+ if(!CmnUtils.isEmpty(prop_val[EXCLCOLMASK]))aryExclMaskCols = CmnUtils.splitCsv(prop_val[EXCLCOLMASK].toUpperCase());
+ if(!CmnUtils.isEmpty(prop_val[SBYTEMASKCHR]))SingleByteChr = prop_val[SBYTEMASKCHR].charAt(0);
+ if(!CmnUtils.isEmpty(prop_val[DBYTEMASKCHR]))DoubleByteChr = prop_val[DBYTEMASKCHR].charAt(0);
+ if(!CmnUtils.isEmpty(prop_val[MASKPTN]))maskPtn = prop_val[MASKPTN];
+ if(!CmnUtils.isEmpty(prop_val[FILENCODE]))fileEncoding = prop_val[FILENCODE];
if(user == null){
throw new Exception("user is null");
}
if (dbType != DB_TYPE_UNKNOWN){
- if(System.getProperty("sql_table_list") != null){
- sql_table_list = System.getProperty("sql_table_list");
+ if(!CmnUtils.isEmpty(prop_val[TBLKEYSQL])){
+ sql_table_list = prop_val[TBLKEYSQL];
} else {
sql_table_list = arySql_table_list[dbType];
}
}
DataAccessObjects dao = new DataAccessObjects(user, pass, url, driver);
+ dao.setPropVal(prop_val);
try {
conn = dao.connect();
if(database!=null)CmnUtils.infoPrint("-->Database='" + database.toUpperCase() + "'");
CmnUtils.infoPrint("-->Output='" + fldr + "'");
- if(System.getProperty("dm")!=null)CmnUtils.infoPrint("-->Delimiter='" + dlmtr + "'");
- if(System.getProperty("ls")!=null)CmnUtils.infoPrint("-->LineSeparator='" + System.getProperty("ls") + "'");
- if(System.getProperty("fe")!=null)CmnUtils.infoPrint("-->FileEncoding='" + fileEncoding + "'");
- if(System.getProperty("qt")!=null)CmnUtils.infoPrint("-->Quotation=" + CmnUtils.getYesNo(isQuotation));
- if(System.getProperty("od")!=null)CmnUtils.infoPrint("-->Sort=" + CmnUtils.getYesNo(isOrder));
+ if(!CmnUtils.isEmpty(prop_val[DELIMITER]))CmnUtils.infoPrint("-->Delimiter='" + prop_val[DELIMITER] + "'");
+ if(!CmnUtils.isEmpty(prop_val[LINESEP]))CmnUtils.infoPrint("-->LineSeparator='" + prop_val[LINESEP] + "'");
+ if(!CmnUtils.isEmpty(prop_val[FILENCODE]))CmnUtils.infoPrint("-->FileEncoding='" + prop_val[FILENCODE] + "'");
+ if(!CmnUtils.isEmpty(prop_val[QUOTATION]))CmnUtils.infoPrint("-->Quotation=" + CmnUtils.getYesNo(isQuotation));
+ if(!CmnUtils.isEmpty(prop_val[ORDER]))CmnUtils.infoPrint("-->Sort=" + CmnUtils.getYesNo(isOrder));
if(isInclTables)CmnUtils.infoPrint("-->Include Tables='" + inclTables.toUpperCase() + "'");
if(isExclTables)CmnUtils.infoPrint("-->Exclude Tables='" + exclTables.toUpperCase() + "'");
if(isInclCols)CmnUtils.infoPrint("-->Include Columns='" + inclCols.toUpperCase() + "'");
CmnUtils.infoPrint("-->Masking=" + CmnUtils.getYesNo(isMask));
CmnUtils.infoPrint("-->Masking Pattern=" + maskPtn.toUpperCase());
if(isInclMaskCols)CmnUtils.infoPrint("-->Masking Columns='" + inclMaskCols.toUpperCase() + "'");
- if(isExclMaskCols)CmnUtils.infoPrint("-->NonMasking Columns='" + exclMaskCols.toUpperCase() + "'");
- CmnUtils.infoPrint("-->1byte Mask Mark='" + hankakuMask + "'");
- CmnUtils.infoPrint("-->2byte Mask Mark='" + zenkakuMask + "'");
+ if(isExclMaskCols)CmnUtils.infoPrint("-->Exclude Masking Columns='" + exclMaskCols.toUpperCase() + "'");
+ CmnUtils.infoPrint("-->Single Byte Mask Char='" + SingleByteChr + "'");
+ CmnUtils.infoPrint("-->Double Byte Mask Char='" + DoubleByteChr + "'");
}
CmnUtils.infoPrint("Start DataUnload ---------------------------------------------");