В настоящее время я пытаюсь вставить новые данные в существующую таблицу в моей базе данных с помощью встроенного 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();
}
Итак, если мои значения являются INT, тогда я бы просто закодировал s.addInt(); Я не уверен, как добавить параметры. Всякий раз, когда я кодирую s.addInt, он говорит, что для оператора типа он не определен. –
да, вы бы использовали setInt(). Измените тип s из Statement в PreparedStatement. Хотя s действительно является PreparedStatement, потому что вы объявили его как Statement, вы можете получить доступ только к методам, определяемым Statement. – DBug