#java #sql #database
#java #sql #База данных
Вопрос:
Часть кода:
@Override
public void actionPerformed(ActionEvent e) {
JFrame adding = new JFrame();
JTextField txtField = new JTextField(30);
JTextField txtStr = new JTextField(30);
JButton add = new JButton("Add");
txtField.setToolTipText("Field name");
txtStr.setToolTipText("Note");
adding.setSize(400, 200);
adding.setVisible(true);
adding.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel pane = new JPanel();
adding.getContentPane().add(pane);
add.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String strInsert = "INSERT INTO Pharmacy (" txtField.getText() ") VALUES (" txtStr.getText() ")";
try {
state.executeUpdate(strInsert);
}
catch (SQLException ex) {
Logger.getLogger(NewDataBase.class.getName()).log(Level.SEVERE, null, ex);
}
}
});
pane.add(add);
pane.add(txtField);
pane.add(txtStr);
}
У меня проблема с обновлением базы данных. При использовании метода executeUpdate()
ошибка tnrows user lacks privilege or object not found
: 'here goes entered data'
. Но я не пытаюсь найти этот объект в базе данных, а пытаюсь добавить этот объект в качестве новой заметки. Итак, почему у меня эта ошибка?
Комментарии:
1. Вероятно, вы пытаетесь получить доступ к таблице, которая не существует.
2. Кажется странным, что имя столбца является параметром, а не фиксированным, а также не то, что если вставляемое значение является строкой, его нужно заключить в одинарные кавычки
3. что такое sql, который выдает эту ошибку? Т.е. что такое txtField.getText()
4. Добавьте
System.out.println(strInsert);
прямо передexecuteUpdate
, чтобы увидеть, какой запрос вы пытаетесь выполнить. Я подозреваю, что имя столбца совершенно неверно