首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >添加MariaDB项目时出现SchemaCrawler错误

添加MariaDB项目时出现SchemaCrawler错误
EN

Stack Overflow用户
提问于 2018-07-25 17:05:05
回答 1查看 94关注 0票数 0

当我将此代码添加到pom.xml中时:

代码语言:javascript
复制
    <!-- https://mvnrepository.com/artifact/us.fatehi/schemacrawler-mariadb -->
    <dependency>
        <groupId>us.fatehi</groupId>
        <artifactId>schemacrawler-mariadb</artifactId>
        <version>14.08.06</version>
    </dependency>

然后我得到一个错误:

代码语言:javascript
复制
java.util.ServiceConfigurationError: schemacrawler.tools.databaseconnector.DatabaseConnector: Provider schemacrawler.server.mariadb.MariaDBDatabaseConnector could not be instantiated
..
Caused by: java.lang.NoSuchMethodError: schemacrawler.tools.databaseconnector.DatabaseConnector.<init>(Lschemacrawler/tools/databaseconnector/DatabaseServerType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V

我正在尝试连接到Oracle数据库。如果我在pom中省略了MariaDb,这将起作用。

我使用的是更高版本的SchemaCrawler:

代码语言:javascript
复制
    <dependency>
        <groupId>us.fatehi</groupId>
        <artifactId>schemacrawler</artifactId>
        <version>14.21.02</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/us.fatehi/schemacrawler-oracle -->
    <dependency>
        <groupId>us.fatehi</groupId>
        <artifactId>schemacrawler-oracle</artifactId>
        <version>14.21.02</version>
    </dependency>

我希望将MariaDB放在pom.xml中,并且仍然能够使用SchemaCrawler读取Oracle。错误发生在连接到数据库之后,在以下代码的最后一行:

代码语言:javascript
复制
        Connection dbConnection = DatabaseBroker.getDbConnection(
                eventName, 
                cbDatabase.getValue(), 
                tConnectionString.getValue(), 
                tUsername.getValue(), 
                tPassword.getValue()
        );

        //Schema schema = SchemaCrawler.getSchema(dbConnection, SchemaInfoLevel.detailed(), new SchemaCrawlerOptions());
        //SchemaCrawler sc = new SchemaCrawler(dbConnection, null);
        try
        {
            Catalog catalog = SchemaCrawlerUtility.getCatalog(dbConnection, null);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-27 10:14:51

您使用的是主SchemaCrawler库和SchemaCrawler数据库插件的不兼容版本。如果要连接到MariaDB,则不需要用于Oracle的插件。事实上,即使在类路径上没有SchemaCrawler数据库插件,SchemaCrawler也可以与大多数数据库一起工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51514984

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档