4

我查看了其他 stackoverflow 线程来获得这个问题的答案。我看到的主要是它是由拼写错误引起的,尽管我在这种方法中看不到任何内容。此方法是从同一类中的另一个方法调用的,运行时返回错误:

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 回答