JDBC - NetBeans x MySQL - PullRequest
       22

JDBC - NetBeans x MySQL

0 голосов
/ 13 октября 2019

Я пытаюсь создать Java-приложение в NetBeans , которое позволяет пользователю использовать большинство функций MySQL RDBMS через графический интерфейс. Я успешно написал код для следующего:

  1. Создание базы данных
  2. Удаление базы данных
  3. Создание таблицы с параметрами для имени таблицы, нет. столбцов, тип данных для каждого столбца

Я застрял в той части, где пользователь вставляет запись в только что созданную таблицу. Я не могу понять, как запрос «вставить в таблицу значений ...» можно динамически создавать и передавать в зависимости от таблицы, в которую пользователь хочет ввести эту запись. Конечно, таблица может иметь любое количество столбцов.

1 Ответ

1 голос
/ 13 октября 2019

Я не знаю, правильный ли это метод, но когда я сталкивался с такой же проблемой в прошлом, я решил ее следующим образом:
Я запустил этот запрос, чтобы найти количество столбцов в таблице

    SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS WHERE table_catalog = 'database_name' AND table_name = 'table_name'

Затем создал динамический SQL-запрос, основанный на количестве столбцов:

    String sql = "Insert into tablename values(";
    for(int i = 1;i<=columns;i++){
        sql += "?";
        if (i < columns) {
        sql += ", ";
        }
    }
    sql+=");";

Затем запустил подготовленный оператор

    PreparedStatement ps = con.prepareStatement(sql);
    ResultSet rs = ps.executeQuery();

Если вы также не знаете ограниченийи тип данных столбцов, попробуйте выполнить синтаксический анализ

    desc tablename

Я знаю, что это, должно быть, самый дерьмовый обходной путь, но он сработал для меня;)

...