У меня есть база данных и Java-программа. Я пытаюсь написать код, так что если в текстовом поле вводится MockID и нажата кнопка отправки, детали в соответствии с введенным идентификатором Mock должны быть извлечены из базы данных и отображены в текстовом поле. ниже - код, который я написал. Код теперь работает после поправок, которые я сделал. Однако в текстовом поле фактически не отображается соответствующая информация из этой записи для данного Mock Id, а только текст. Может ли кто-нибудь проконсультироваться?Java MySQL PreparedStatement SELECT Statement
JButton button = new JButton("Submit");
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
String mockId = textField.getText();
try {
String sql = "SELECT MockID, Subject, Year, Date FROM mockexam WHERE MockID =?";
PreparedStatement prest = con.prepareStatement(sql);
prest.setString(1, mockId);
prest.executeQuery();
textArea.append("MockID, Subject, Year, Date");
JOptionPane.showMessageDialog(frmFindMock, "Record has been updated.");
}
catch (SQLException e) {
//System.out.println("Record couldn't be added!");
e.printStackTrace();
JOptionPane.showMessageDialog(frmFindMock, "Record couldn't be updated. Please try again.");
}
}
});
button.setBounds(303, 60, 75, 23);
panel_1.add(button);
Я хотел бы, чтобы Mock ID, Subject, Year и Date отображались в результатах TextArea. Причина, почему у меня было WHERE MockID =? потому что информация должна отображаться для конкретного MockID, который вводит пользователь? – Pita
Да, я знаю ... мы делаем setString для всех переменных, которые представлены «?» .... и здесь только MockId - это переменная ..... вы можете получить всю строку, если хотите, используя «select * "... но все же будет только один аргумент (представленный?) в PreparedStatement, и это ваш MockId –