当我将其添加到 pom.xml 时: <!-- https://mvnrepository.com/artifact/us.fatehi/schemacrawler-mariadb --> <dependency> <groupId>us.fatehi</groupId> <artifactId>schemacrawler-mariadb</artifactId> <version>14.08.06</version> </dependency>然后我得到一个错误: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: <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>我希望在 pom.xml 中有 MariaDB,并且仍然能够使用 SchemaCrawler 读取 Oracle。连接数据库后出现错误,在以下代码的最后一行: 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);
1 回答
![?](http://img1.sycdn.imooc.com/54586425000103f602200220-100-100.jpg)
收到一只叮咚
TA贡献1821条经验 获得超4个赞
您使用的主要 SchemaCrawler 库和 SchemaCrawler 数据库插件的版本不兼容。如果您连接到 Oracle,则不需要 MariaDB 插件。事实上,即使在类路径上没有 SchemaCrawler 数据库插件,SchemaCrawler 也可以与大多数数据库一起使用。
添加回答
举报
0/150
提交
取消