cstm=conn.prepareCall("{call ekleSP}");
cstm.setInt(1, Integer.parseInt(tb_1.getText()));
cstm.setString(2, tb_2.getText());
cstm.setString(3, tb_3.getText());
cstm.setString(4, tb_4.getText());
cstm.setString(5, tb_5.getText());
cstm.execute();
Ekleはそれがこのストアドプロシージャを使用して、ID、名前、姓、PHONENUMBER、性別およびIMように書き加えること
:は、私はSQL例外を取得しています。パラメータのインデックスをエラー(0 1>パラメータの数、)範囲外の
CREATE DEFINER=`root`@`localhost` PROCEDURE `ekleSP`(IN id INT(11),IN
uye_adi VarChar(45),
IN uye_soyadi VarChar(45), IN uye_tel VarChar(11),IN cinsiyet VarChar(5))
BEGIN
INSERT into tbluyeler(id,uye_adi,uye_soyadi,uye_tel,cinsiyet) values
('?','?','?','?','?');
END
私はJavaがストアドプロシージャを処理する方法に慣れていません。あなたは '' {ekleSP(?、?、?、?、?)} ''のようなものを試しましたか? *( '?'は通常はパラメータを指定する必要があります)*また、偶然にも、ストアドプロシージャは 'tbluyeler'に複数の疑問符を挿入するだけです。パラメータを完全に無視します。 – Uueerdo
私は@Uueerdoに同意します。パラメータ値を設定する前に、パラメータ付きプロシージャを呼び出す必要があります。また、プロシージャ内でINSERTを間違って実行しています。 PREPAREとEXECUTEを使用していない場合は、 '?'を使用しないでください。 'PREPARE'と' EXECUTE'を使っていても '? 'を引用符で囲まないでください。 –