DatabaseMetaData # getTables ничего не возвращает - PullRequest
0 голосов
/ 11 мая 2018

Я пытаюсь получить информацию о базе данных, такую ​​как информация о базе данных, таблицы, представления, пользователи, схемы.Но я не могу получить таблицы.Я загружаю драйвер базы данных из внешнего файла jar, потому что я хочу создать общую программу базы данных, которая получает драйверы jdbc из внешнего файла jar.

try {
            DatabaseMetaData dm = connection.getMetaData();
            /**
             * Database Info
             */
            System.out.println("Database Info\n---------------------------------\n");
            System.out.println(dm.getDatabaseProductName());
            System.out.println(dm.getDriverName());
            System.out.println(dm.getDriverVersion());
            System.out.println(dm.getDatabaseProductVersion());

            ResultSet rsCatalogs = dm.getCatalogs();
            System.out.println("Catologs\n---------------------------------\n");

            while (rsCatalogs.next()) {
                System.out.println(rsCatalogs.getString(1));
            }
            rsCatalogs.close();

            System.out.println("Schemas\n---------------------------------\n");
            ResultSet rsSchemas = dm.getSchemas();
            while (rsSchemas.next()) {
                System.out.println(rsSchemas.getString(1));
            }
            rsSchemas.close();
            /**
             * TABLES
             */
            System.out.println("Tables\n---------------------------------\n");
            ResultSet rsTables = dm.getTables(null, null, "%", null);
            while (rsTables.next()) {
                System.out.println(rsTables.getString(3));
            }
            rsTables.close();

            /**
             * columns
             */
            System.out.println("Columns of kontrol\n---------------------------------\n");
            ResultSet columns = dm.getColumns(null, null, "kontrol", null);
            while (columns.next()) {
                String columnName = columns.getString("COLUMN_NAME");
                String datatype = columns.getString("DATA_TYPE");
                String columnsize = columns.getString("COLUMN_SIZE");
                String decimaldigits = columns.getString("DECIMAL_DIGITS");
                String isNullable = columns.getString("IS_NULLABLE");
                String is_autoIncrment = columns.getString("IS_AUTOINCREMENT");
                //Printing results
                System.out.println(columnName + "---" + datatype + "---" + columnsize + "---" + decimaldigits + "---" + isNullable + "---" + is_autoIncrment);
            }
            columns.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }

Вывод:

Database Info
---------------------------------

MySQL
MySQL Connector Java
mysql-connector-java-5.1.45 ( Revision: 9131eefa398531c7dc98776e8a3fe839e544c5b2 )
5.5.5-10.1.28-MariaDB
Catologs
---------------------------------

information_schema
kurs
mysql
performance_schema
phpmyadmin
seyehat
test
yolcutakip
Schemas
---------------------------------

Tables
---------------------------------

Columns of kontrol
---------------------------------

Примечание 1: seyehat, test, yolcutakip - мои базы данных. Примечание 2. Я занимаюсь разработкой универсальной программы для баз данных, поэтому этот код не будет работать только в mysql, но также и в oracle, derby ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...