我正在使用Hiberante連接到postgres數據庫。我正試圖向數據庫中插入一條記錄。我有一個字符串數組中的記錄值,我從csv文件中獲取。這是我的道代碼沒有指定參數1的值
StringBuffer query=new StringBuffer("insert into t_wonlist values(");
for(int i=0;i<67;i++){
query.append(values[i]+",");
}
query.deleteCharAt(query.lastIndexOf(","));
query.append(");");
sessionfactory.getCurrentSession().createSQLQuery(query.toString()).executeUpdate();
System.out.println("Query executed");
sessionfactory.getCurrentSession().flush();
我正在使用StringBuffer,以便我可以使用for循環將值追加到查詢中。
但是當我執行查詢,我收到以下異常
org.postgresql.util.PSQLException: No value specified for parameter 1.
我肯定參數的數量是正確的。有人能幫我嗎。謝謝
請閱讀http://en.wikipedia.org/wiki/SQL_injection然後切換到使用參數化查詢(「準備語句」)。你永遠不需要用一個字符串生成器來構建一個簡單的插入查詢,這樣做危險地不安全 - 參見http://bobby-tables.com/。您需要顯示與該錯誤相對應的SQL的*確切文本*,如果您需要現在代碼的任何幫助。 – 2013-05-04 12:03:46
其中一個'values [i]'s是一個問號,不是嗎? – dasblinkenlight 2013-05-04 12:06:11
@dasblinkenlight ...並沒有被正確引用,可能。 – 2013-05-04 12:06:33