Eclipse Data Tools项目:SQL查询分析器 - 导入无法解决

时间:2016-02-10 09:59:50

标签: java sql-server parsing eclipse-dtp

我正在使用Eclipse 4.5.1 Mars,数据工具项目已经集成在此发行版中。我正在尝试使用Data Tools Project的SQL Query Parser来解析SQL文件。我创建了一个新的Java项目,一个包和一个类,我使用了这里给出的代码示例: http://dev.eclipse.org/mhonarc/lists/dtp-sqldevtools-dev/msg00074.html

但是我无法解析使用解析器所需的类。例如。在代码的最开头,您会发现以下声明: SQLQueryParserManager parserManager = SQLQueryParserManagerProvider SQLQueryParserManager显示错误并要求"导入' SQLQueryParserManager' (org.eclipse.datatools.sqltools.parsers.sql.query)" - 我做的。在java文件顶部的import-statement部分" import org.eclipse.datatools.sqltools.parsers.sql.query.SQLQueryParserManager;"是相关的参考。然而,它继续告诉我'导入org.eclipse'无法解决。

我不知道如何解决它。我试图下载DTP并将插件复制到Mars的插件文件夹中,但也没有任何变化。

这是我尝试运行的.java文件。它非常简单,但由于某些原因仍然无法解决所需的类。这些课应该是eclipse Mars imo的一部分。我尝试了不同的Eclipse下载和所有相同的。请帮忙

// imports needed
import java.util.Iterator;
import java.util.List;

import org.eclipse.datatools.sqltools.parsers.sql.query.src.org.eclipse.datatools.sqltools.parsers.sql.query.SQLQueryParseResult;
import org.eclipse.datatools.sqltools.parsers.sql.query.src.org.eclipse.datatools.sqltools.parsers.sql.query.SQLQueryParserManager;
import org.eclipse.datatools.sqltools.parsers.sql.query.src.org.eclipse.datatools.sqltools.parsers.sql.query.SQLQueryParserManagerProvider;
import org.eclipse.datatools.sqltools.parsers.sql.src.org.eclipse.datatools.sqltools.parsers.sql.SQLParseErrorInfo;
import org.eclipse.datatools.sqltools.parsers.sql.src.org.eclipse.datatools.sqltools.parsers.sql.SQLParserException;
import org.eclipse.datatools.sqltools.parsers.sql.src.org.eclipse.datatools.sqltools.parsers.sql.SQLParserInternalException;

class LPGParserExample {
    public static void main(String args[]) {
        try {
            // Create an instance the Parser Manager
            // SQLQueryParserManagerProvider.getInstance().getParserManager
            // returns the best compliant SQLQueryParserManager
            // supporting the SQL dialect of the database described by the given
            // database product information. In the code below null is passed
            // for both the database and version
            // in which case a generic parser is returned

            SQLQueryParserManager parserManager = SQLQueryParserManagerProvider
                    .getInstance().getParserManager(null, null);
            // Sample query
            String sql = "SELECT * FROM TABLE1";
            // Parse
            SQLQueryParseResult parseResult = parserManager.parseQuery(sql);
            // Get the Query Model object from the result
            QueryStatement resultObject = parseResult.getQueryStatement();
            // Get the SQL text
            String parsedSQL = resultObject.getSQL();
            System.out.println(parsedSQL);

        } catch (SQLParserException spe) {
            // handle the syntax error
            System.out.println(spe.getMessage());
            List syntacticErrors = spe.getErrorInfoList();
            Iterator itr = syntacticErrors.iterator();
            while (itr.hasNext()) {
                SQLParseErrorInfo errorInfo = (SQLParseErrorInfo) itr.next();
                // Example usage of the SQLParseErrorInfo object
                // the error message
                String errorMessage = errorInfo.getParserErrorMessage();
                // the line numbers of error
                int errorLine = errorInfo.getLineNumberStart();
                int errorColumn = errorInfo.getColumnNumberStart();
            }
        } catch (SQLParserInternalException spie) {
            // handle the exception
            System.out.println(spie.getMessage());
        }
    }
}

0 个答案:

没有答案