获取特定于DB2的解析器实例

时间:2014-07-08 13:46:37

标签: java eclipse-plugin eclipse-dtp

我试图创建一个简单的插件,我可以从我们的日志中粘贴一个sql查询,并让它在表中显示列名和插入的值。除了日期和时间之外,我的工作正常,因为我们的DB2数据库使用特殊值,如{d: '2014-07-03'}而不是'2014-07-03'

如何确定需要传递给SQLQueryParserManagerProvider.getInstance().getParserManager(dbProduct, dbVersion);

的值

获得可以处理这些值的正确解析器?

1 个答案:

答案 0 :(得分:0)

在Database Development视图中设置连接(我称之为我的QA),双击打开连接,然后运行:

IConnectionProfile profile = ProfileManager.getInstance().getProfileByName("QA");
Database db = getDatabase(profile);
if (db != null) {
    System.out.println("DB Vendor: " + db.getVendor());
    System.out.println("DB Version: " + db.getVersion());
}

getDatabase方法取自this page

private Database getDatabase(IConnectionProfile profile) {
    IManagedConnection managedConnection = ((IConnectionProfile) profile)
            .getManagedConnection("org.eclipse.datatools.connectivity.sqm.core.connection.ConnectionInfo");
    if (managedConnection != null) {
        try {
            ConnectionInfo connectionInfo = (ConnectionInfo) managedConnection.getConnection().getRawConnection();
            if (connectionInfo != null) {
                Database database = connectionInfo.getSharedDatabase();
                return database;
            }
        }
        catch (Exception e) {
            e.printStackTrace();
        }
    }
    return null;
}