⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 createincludefiles.java

📁 数据仓库工具
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
                        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 + -