2015-11-22 7 views
0

В настоящее время я пытаюсь вставить новые данные в существующую таблицу в моей базе данных с помощью встроенного SQL. Мне нужно иметь возможность вводить мои данные в диалоговом окне, а затем вернуть его мне в диалоговом окне после его выполнения.Встраиваемый SQL INSERT с использованием диалоговых окон

Моя проблема, похоже, связана с «s.executeUpdate(input);», поскольку она говорит мне, что у меня есть ошибка в синтаксисе MySQL. Я не уверен, как это исправить, или как изменить синтаксис. Помощь будет очень признательна!

Connection c = null; 
try { 

    Class.forName("com.mysql.jdbc.Driver"); 
    c = DriverManager.getConnection("jdbc:mysql://localhost:3306/company - final project", "root", ""); 

    String query = "INSERT INTO works_on (ESSN, PNO, HOURS)" + "Values (?, ?, ?)"; 
    Statement s = c.prepareStatement(query); 
    String input = JOptionPane.showInputDialog(null, "Info to be Inserted: "); 
    s.executeUpdate(input); 
    JOptionPane.showMessageDialog(null, "Data Inserted: " + input); 

    c.close(); 
} 
catch (Exception e) 
{ 
    e.printStackTrace(); 
} 

ответ

0

Вы подготовили оператор, требующий 3 параметра, но вы его не добавили. необходимо вызвать s.addXXX в правильном порядке, чтобы указать 3 значения для вставки, если «XXX» является подходящим типом для значений

+0

Итак, если мои значения являются INT, тогда я бы просто закодировал s.addInt(); Я не уверен, как добавить параметры. Всякий раз, когда я кодирую s.addInt, он говорит, что для оператора типа он не определен. –

+0

да, вы бы использовали setInt(). Измените тип s из Statement в PreparedStatement. Хотя s действительно является PreparedStatement, потому что вы объявили его как Statement, вы можете получить доступ только к методам, определяемым Statement. – DBug

 Смежные вопросы

  • Нет связанных вопросов^_^