Вы проглатываете исключение, которое обычно является плохой идеей. По крайней мере, вызовите e.printStackTrace()
, чтобы получить вывод исключения.
Как это происходит, у вас есть синтаксическая ошибка в вашем операторе SQL: UPDATE item SET Name = ?, Size = ?, Price = ?, WHERE ItemCode = ?
- удалить запятую после Price = ?
.
Чтобы устранить путаницу с тем, почему оператор UPDATE по-прежнему не работает, несмотря на исправление синтаксической ошибки, позвольте мне объяснить более подробно (гораздо проще сделать это в ответе, чем в комментариях).
Символ ?
в строке SQL является заполнителем для значения, которое вы установите с помощью одного из различных методов set_()
(в вашем случае, только когда-либо setString()
. Каждый заполнитель нумеруется индексом начиная с 1 - первое ?
, которое появляется в вашей строке, представляет индекс 1, второе представляет индекс 2 и т. д.
Ваша строка SQL выглядит следующим образом:
UPDATE item SET Name = ?, // 1
Size = ?, // 2
Price = ? // 3
WHERE ItemCode = ? // 4
Вы устанавливаете значения для своих заполнителей следующим образом:
st.setString(1, textArea_Code.getText()); // ItemCode is fourth in the SQL, should be 4
st.setString(2, textArea_name.getText()); // Name is first in the SQL, should be 1
st.setString(3, textArea_size.getText()); // Size is second in the SQL, should be 2
st.setString(4, textArea_price.getText()); // Price is third in the SQL, should be 3