Как я могу преодолеть синтаксическую ошибку в этом коде? - PullRequest
0 голосов
/ 27 декабря 2018

Я работал над своим проектом, я столкнулся с синтаксической ошибкой при создании таблицы.Не могли бы вы помочь мне?Получая значения из текстовых полей, будет использовать для рассмотрения имен атрибутов

String ac2 = a2.getText();
String ac3 = a3.getText();
String ac4 = a4.getText();
String ac5 = a5.getText();
String ac6 = a6.getText();
String ac7 = a7.getText();
String ac8 = a8.getText();
String ac9 = a9.getText();

Получение значений из комбинированного списка для определения типа атрибута

String t1 = c1.getSelectedItem().toString();
String t2 = c2.getSelectedItem().toString();
String t3 = c3.getSelectedItem().toString();
String t4 = c4.getSelectedItem().toString();
String t5 = c5.getSelectedItem().toString();
String t6 = c6.getSelectedItem().toString();
String t7 = c7.getSelectedItem().toString();
String t8 = c8.getSelectedItem().toString();
String t9 = c9.getSelectedItem().toString();

Мой запрос для создания таблицы

String sql = "CREATE TABLE " + tablename + "(\n"
            +"Name" +t1 + "PRIMARY KEY NOT NULL ,\n"
            +ac2 +t2 + ",\n"
            +ac3 +t3 + ",\n"
            +ac4 +t4 + ",\n"
            +ac5 +t5 + ",\n"
            +ac6 +t6 + ",\n"
            +ac7 +t7 + ",\n"
            +ac8 +t8 + ",\n"
            +ac9 +t9 + ",\n"
            +");";
 try(Statement stmnt = connection.createStatement()  ){
        stmnt.execute(sql);
    }
    catch(SQLException e){
        JOptionPane.showMessageDialog(null,e);
    }

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

Сейчас я получаю нераспознанный токен ошибки ("2TEXT").

Ответы [ 2 ]

0 голосов
/ 27 декабря 2018

Я вижу ряд фактических или потенциальных синтаксических ошибок.

  • Вы не поставили пробел между именами столбцов и соответствующими типами.
  • Завершающая запятаяв списке.
  • Любое из входных имен (tablename, ac2, ac3 и т. д.) может иметь значение, являющееся ключевым словом SQL.
  • Любой из типов ввода(t1, t2, и так далее) может иметь значение, которое не является допустимой спецификацией типа столбца SQL.

Я предлагаю вам распечатать SQL, который выстроят в sql ... и внимательно на него смотрят.

0 голосов
/ 27 декабря 2018

удалить последнюю запятую и добавить пробел между атрибутом и типом

String sql = "CREATE TABLE " + tablename + "(\n"
            +"Name" +t1 + "PRIMARY KEY NOT NULL ,\n"
            +ac2 + " " + t2 + ",\n"
            +ac3 +" " + t3 + ",\n"
            +ac4 +" " + t4 + ",\n"
            +ac5 +" " + t5 + ",\n"
            +ac6 +" " + t6 + ",\n"
            +ac7 +" " + t7 + ",\n"
            +ac8 +" " + t8 + ",\n"
            +ac9 +" " + t9 +");";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...