Вы создаете PreparedStatement
, но не используете его.
Готовый оператор существует, например, для вставки различных значений в таблицу несколько раз.
Вы создаете PreparedStatement
один раз, как если бы вы выполняли обычный оператор и включали ?
вместо значений, которые отличаются.
Если вы хотите выполнить его, вы должны установить значения (?
s будет заменено на их) с помощью методов setXXX(int,Type)
и затем выполните его с .execute()
.
Как указано в комментариях к вопросу, код SQL недопустим. Подготовленный оператор кода sql подобен коду sql обычного оператора, но значения, которые постоянно изменяются, заменяются ?
.
Код подготовленного оператора SQL будет быть примерно таким:
INSERT INTO mybranches VALUES (?,?,?)
Если вы хотите использовать PreparedStatement
, вы можете установить значения следующим образом:
pstmt.setString(1,branch_name);
pstmt.setObject(2,branch_created_from);
pstmt.setString(3,branch_pulled_from);
Наконец, выполните его с помощью
pstmt.execute();
Обратите внимание, что (как я уже говорил) вам следует создавать PreparedStatement
один раз, а не каждый раз, когда вы выполняете метод insertRecord()
, и в этом методе вы должны просто вызывать методы setXXX
и execute()
method.
PreparedStatement
(и объект Connection
) следует закрывать, когда он вам больше не нужен.
Также как @ TT. предлагает в комментариях, вы должны указать столбцы в INSERT
утверждении. Это было бы что-то вроде
INSERT INTO mybranches (name,createdFrom,pulledFrom) VALUES (?,?,?)