Я пытаюсь создать объект DatabaseTable (мой пользовательский объект), выполняя запросы с использованием jdb c DatabaseMetadata и ResultSet.
Приведенный ниже код прекрасно работает, если я запускаю его для базы данных MySQL, но он выдает ошибку с исключением при попытке использовать базу данных Exasol.
private DatabaseTableColumnMetadata getTableAndColumnNames(DatabaseMetaData metaData)
throws SQLException {
ResultSet tables = metaData.getTables(null,null,"%",null);
while (tables.next()){
if (tables.getString("TABLE_TYPE").equalsIgnoreCase("TABLE")
&& ((ResultSetImpl) tables).getConnection().getCatalog()
.equals(tables.getString("TABLE_CAT"))) {
DatabaseTable table = DatabaseTable.builder().name(tables.getString("TABLE_NAME")).schema(tables.getString("TYPE_SCHEM")).build();
}
}
}
Исключение выдается следующим образом
com.exasol.jdbc.EXAResultSet cannot be cast to com.mysql.cj.jdbc.result.ResultSetImpl","message":"com.exasol.jdbc.EXAResultSet cannot be cast to com.mysql.cj.jdbc.result.ResultSetImpl","name":"java.lang.ClassCastException
Исключение выдается в строке, где он пытается преобразовать таблицы объект для ResultSetImpl .
В моем проекте есть оба jar-файла exajdb c .jar, а также mysql -connector. jar
Любая помощь или подсказка для решения этой проблемы, пожалуйста.