📄 createincludefiles.java
字号:
throw le;
} catch (Exception e) {
String msg = "Error while trying connect to database ( maybe password or username is wrong ? ) :";
//if (this.logger != null) {
//}
LoaderException le = new LoaderException(msg + "\n" + e.getMessage(), (Throwable) e);
this.logger.write("full", "Exception:" + msg + "\n" + le.getStackTraceAsString());
throw le;
}
}
WriteXmlFile writeXmlFile;
if (generatorParameters.getGenerateXml().equalsIgnoreCase("true"))
writeXmlFile = new WriteXmlFile(document, generatorParameters);
} catch (ParserConfigurationException pce) {
// Parser with specified options can't be built
String msg = "Exception in CreateIncludeFiles class:Parser with specified options can't be built";
//if (this.logger != null) {
//}
LoaderException le = new LoaderException(msg + "\n" + pce, (Throwable) pce);
this.logger.write("full", "Exception in CreateIncludeFiles class:Parser with specified options can't be built." + "\n" + le.getStackTraceAsString());
throw le;
}
//System.out.println("\ndone...\n\n");
this.logger.write("normal", "\ndone...\n\n");
//BufferOctopusClass.getInstance().writeToBuffer("\ndone...\n\n");
}
//Create an importDefinition.xml file
else {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilderFactory factoryDoml = DocumentBuilderFactory.newInstance();
try {
// Create Importdefinition file, initializing the Document object and creatint the root
// element.
DocumentBuilder builder = factory.newDocumentBuilder();
document = builder.newDocument(); // Create from whole cloth
Element root = (Element) document.createElement("definitionInclude");
document.appendChild(root);
// Creating the doml file, initializing the Document object and creating the root,
// childRoot1 and childRoot2 elements.
DocumentBuilder builderDoml = factoryDoml.newDocumentBuilder();
documentDoml = builderDoml.newDocument(); // Create from whole cloth
if ((generatorParameters.getGenerateDoml().equalsIgnoreCase("true"))) {
rootDoml = (Element) documentDoml.createElement("doml");
documentDoml.appendChild(rootDoml);
childRoot1 = (Element) documentDoml.createElement("database");
rootDoml.appendChild(childRoot1);
childRoot1.setAttribute("database", generatorParameters.getTargetType());
//Element childRoot2=null;
StringTokenizer newPackage = new StringTokenizer(generatorParameters.getPackageName(), ".");
Element tmp = childRoot1;
String name = "";
String packageName = "";
int count = 0;
while (newPackage.hasMoreTokens()) {
childRoot2 = (Element) documentDoml.createElement("package");
tmp.appendChild(childRoot2);
packageName = newPackage.nextToken();
childRoot2.setAttribute("id", name + packageName);
tmp = childRoot2;
if (count == 0)
name = packageName + ".";
else
name = name + packageName + ".";
count++;
}
}
//Creating Sql file
JdbcParameters sourceJdbc = new JdbcParameters("source", generatorParameters);
Connection conn = null;
try {
URL url = null;
String app = "";
String path = AddClassPath.getClassPathString();
if (path != null) {
StringTokenizer st = new StringTokenizer(path, ";");
int count = 0;
while (st.hasMoreTokens()) {
GeneratorClassLoader.addURL(new File(st.nextElement().toString()).toURL());
}
Class.forName(sourceJdbc.getJdbcParameters("JdbcDriver"));
} else {
Class.forName(sourceJdbc.getJdbcParameters("JdbcDriver"));
}
conn = DriverManager.getConnection(sourceJdbc.getJdbcParameters("Connection.Url"), sourceJdbc.getJdbcParameters("User"), sourceJdbc.getJdbcParameters("Password"));
} catch (ClassNotFoundException ce) {
String msg = "Can't find driver class : ";
//if (this.logger != null) {
//}
LoaderException le = new LoaderException(msg + "\n" + ce.getMessage(), (Throwable) ce);
this.logger.write("full", "Exception:Can't find driver class!" + "\n" + le.getStackTraceAsString());
throw le;
} catch (Exception e) {
e.printStackTrace();
String msg = "Error while trying connect to database ( maybe password, username or database url is wrong ? ) :";
//if (this.logger != null) {
//}
LoaderException le = new LoaderException(msg + "\n" + e.getMessage(), (Throwable) e);
this.logger.write("full", "Exception:" + msg + "\n" + le.getStackTraceAsString());
throw le;
}
String[] types = { "TABLE" };
String catalogName = null;
int index = generatorParameters.getSourceDataBase().indexOf("DatabaseName=");
int index1 = generatorParameters.getSourceDataBase().lastIndexOf(";");
if (index > 0) {
if (index1 > index) {
catalogName = generatorParameters.getSourceDataBase().substring(index + 13, generatorParameters.getSourceDataBase().lastIndexOf(";"));
} else {
catalogName = generatorParameters.getSourceDataBase().substring(index + 13);
}
} else {
int index2 = generatorParameters.getSourceDataBase().lastIndexOf("\\");
int index3 = generatorParameters.getSourceDataBase().lastIndexOf("/");
if (index2 > index3)
catalogName = generatorParameters.getSourceDataBase().substring(generatorParameters.getSourceDataBase().lastIndexOf("\\") + 1);
else
catalogName = generatorParameters.getSourceDataBase().substring(generatorParameters.getSourceDataBase().lastIndexOf("/") + 1);
}
ResultSet rs = conn.getMetaData().getTables(catalogName, null, "%", types);
int i = 0;
while (rs.next()) {
String tableName = rs.getObject(3).toString();
boolean doJob = false;
//includeTable
if (generatorParameters.getIncludeTableList().size() == 0) {
doJob = true;
} else {
for (int j = 0; j < generatorParameters.getIncludeTableList().size(); j++) {
if (tableName.equalsIgnoreCase(generatorParameters.getIncludeTableList().get(j).toString())) {
doJob = true;
break;
}
}
}
//excludeTable
String[] list = generatorParameters.getExcludedTables();
if (doJob) {
for (int j = 0; j < list.length; j++) {
if (tableName.equalsIgnoreCase(list[j])) {
doJob = false;
break;
}
}
}
if (generatorParameters.getValueMode().equalsIgnoreCase("Update")) {
//This method is not supported!
} else { //copy table mode
if (doJob) {
int counterOfConstraints = 0;
//System.out.println("Working...." + tableName);
//BufferOctopusClass.getInstance().writeToBuffer("Working...." + tableName);
//if (this.logger != null) {
this.logger.write("normal", "Working...." + tableName);
//}
TableRelationshipsReader tableRelationshipsReader = new TableRelationshipsReader(conn, tableName, catalogName, generatorParameters, counterOfConstraints);
TableDesignReader tableDesignReader = new TableDesignReader(tableName, conn, catalogName, generatorParameters);
if (generatorParameters.isGenerateSql()) {
WriteSqlFiles writeSql = new WriteSqlFiles(tableName, i, tableDesignReader.getImportDefinition(), tableRelationshipsReader.getRelationshipsAttributes(), generatorParameters);
}
try {
WriteImportDefinition writeImportDefinition;
if (generatorParameters.getGenerateXml().equalsIgnoreCase("true"))
writeImportDefinition = new WriteImportDefinition(document, root, tableDesignReader.getImportDefinition(), generatorParameters);
if ((generatorParameters.getGenerateDoml().equalsIgnoreCase("true"))) {
GenerateDoml generateDoml;
generateDoml = new GenerateDoml(documentDoml, rootDoml, childRoot1, childRoot2, tableName, tableDesignReader.getImportDefinition(), tableRelationshipsReader.getRelationshipsAttributes(), generatorParameters);
}
} catch (Exception pce) {
LoaderException le = new LoaderException(pce.getMessage(), (Throwable) pce);
this.logger.write("full", "Exception:"+le.getStackTraceAsString());
throw le;
}
i++;
} else {
//System.out.println("\tTable " + tableName + " is excluded from the process.");
//BufferOctopusClass.getInstance().writeToBuffer("\tTable " + tableName + " is excluded from the process.");
//if (this.logger != null) {
this.logger.write("normal", "Table " + tableName + " is excluded from the process.");
//}
}
} //end of Copy tableMode
}
if (i < 1) {
String msg = "There is no tables in specified source database (" + catalogName + "). Check input parameters.";
//if (this.logger != null) {
//}
LoaderException le = new LoaderException("Exception:", new Exception(msg));
this.logger.write("full", "Exception:There is no tables in specified source database (" + catalogName + ")");
throw le;
}
//System.out.println("\ndone...\n\n");
//BufferOctopusClass.getInstance().writeToBuffer("\ndone...\n\n");
//if (this.logger != null) {
this.logger.write("normal", "\ndone...\n\n");
//}
WriteXmlFile writeXmlFile;
if (generatorParameters.getGenerateXml().equalsIgnoreCase("true"))
writeXmlFile = new WriteXmlFile(document, generatorParameters);
if (generatorParameters.getGenerateDoml().equalsIgnoreCase("true")) {
WriteDomlFile writeDomlFile;
writeDomlFile = new WriteDomlFile(documentDoml, generatorParameters);
}
conn.close();
} catch (Exception e) {
String msg = "Exception in class CreateIncludeFiles:";
//if (this.logger != null) {
//}
LoaderException le = new LoaderException(msg + "\n" + e.getMessage(), (Throwable) e);
this.logger.write("full", "Exception in class CreateIncludeFiles:" + le.getStackTraceAsString());
throw le;
}
}
this.logger.write("normal", "\tcreateIncludeFiles method is finished.");
}
/**
* This method will set logger object
* @param logger
*/
private void setLogger() {
this.logger = StandardLogger.getCentralLogger();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -