2013-06-24 96 views
1

我的java/jdbc代碼有問題。查詢JDBC Java

參數索引超出範圍(2號中的哪一個參數1)

代碼:

   Connection c = null; 
       MySQL MySQL = new MySQL(Host, Port, Database, Username, Password); 
       c = MySQL.open(); 
       Player player = (Player) sender; 
       String zapytanie = "UPDATE `?` SET `tag`=? WHERE `name`='?';"; 
       PreparedStatement ps = c.prepareStatement(zapytanie); 
       ps.setString(1, Tabel); 
       ps.setString(2, red); 
       ps.setString(3, player()); 
       ps.executeUpdate(); //Executes the query 
       ps.close(); //Closes the query 
       c.close(); 
+2

難道這有什麼做的'引號? – austin

回答

4
final String zapytanie = "UPDATE " + Table + " SET tag = ? WHERE name = ?"; 
  • 沒有圍繞
  • JDBC不需要所需?引號;任意 SQL語句
  • 佔位?只能用於列的值
+0

+1,這就是它。我也會建議你的查詢字符串'最終字符串zapytanie' – TecHunter

+0

你有你的sql語法錯誤;檢查與您的mysql服務器版本相對應的手冊,以在''tabelx'附近使用正確的語法'SET tag ='red'WHERE name ='Awek' – Awesomeness

+0

@Awesomeness表名必須連接在一起。 '?'僅適用於列值。 –