4

この問題の答えを得るために、他のスタックオーバーフロースレッドを調べました。この方法では何も見られませんが、ほとんどの場合、タイプミスが原因であることがわかります。このメソッドは、同じクラスの別のメソッドから呼び出され、実行時にエラーが返されます。

java.sql.SQLException: パラメータ 1 に値が指定されていません

私のクラスのコードは次のとおりです。

public void WriteTag(String tagPrefix, String tagName, String tagContent)
{
    try {
        String query = String.format("INSERT INTO %s(%s,%s) VALUES(?,?)", 
                tagPrefix, TAGNAME_COLUMN, TAGCONTENT_COLUMN);
        PreparedStatement sqlStatement = connection.prepareStatement(query);
        sqlStatement.setString(1, tagName);
        sqlStatement.setString(2, tagContent);
        //sqlStatement.executeUpdate();
    } catch(Exception e) {HandleException(e);}
}

ここで何が問題なのかよくわかりません。定数は、コードの他の場所で適切に定義されています。誰かが私が間違っていることを見ていますか?

4

1 に答える 1

1

これを試して

String query = "Insert into foo (foo1,foo2) Values (?,?)";
PreparedStatement pst = connection.prepareStatement(query);
pst.setString(1, whatever);
pst.setString(2, whatever);
pst.executeUpdate();  // this is actually important in order to get data inserted into database. 

そのため、データベースにあるテーブル名を技術的にハードコードします。そしてそれはうまくいくはずです。

于 2013-05-23T22:26:58.633 に答える