Список всех таблиц в базе данных - PullRequest
0 голосов
/ 28 октября 2018

Я использую ucanaccess для управления базой данных SQL в Java.Я сделал Первоначальную настройку, используя ответ на вопрос - Настройка ucanaccess

После настройки я успешно могу Создать таблицы, Вставить в таблицы однако я не могу перечислить существующие таблицы.

Я прилагаю код, который я использую -

public class Driver {
public static void main(String[] args) {
    try {
        Connection myconnection = DriverManager.getConnection("jdbc:ucanaccess:///usr/local/var/mysql/library/database.accdb");
        Statement stmt = myconnection.createStatement();

        stmt.executeQuery("create table books ( BarCode VARCHAR(255) NOT NULL, title VARCHAR(255) NOT NULL, author VARCHAR(255), PRIMARY kEY (BarCode) );");
        stmt.executeQuery("Insert INTO books VALUES(\"123\", \"Monk\", \"Robin\")");
        ResultSet res = myconnection.getMetaData().getTables(null, null, "books", new String[] {"TABLE"});
        while (res.next()) {
            System.out.println(
                    "   "+res.getString("TABLE_CAT")
                            + ", "+res.getString("TABLE_SCHEM")
                            + ", "+res.getString("TABLE_NAME")
                            + ", "+res.getString("TABLE_TYPE")
                            + ", "+res.getString("REMARKS"));
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}

Часть, в которой перечислены всеимена таблиц используются из ответа - Список всех таблиц

Любая помощь приветствуется.

Редактировать: Я пытался проверить, если "books" существовало в базе данных, поэтому я дал "books" в tableNamePattern в поиске.После указания @Andreas я изменил его.

1 Ответ

0 голосов
/ 29 октября 2018

Как указал @AKSW, я должен был использовать executeUpdate вместо executeQuery .

В примерах здесь командыдля использования различных функций указано для DDL & Queries.

...