2011-05-05 87 views
2

在下面标记的行上获取错误。有任何想法吗?JDBC给我参数索引超出范围(1>参数数量为0)

  ... 
      int hash = ConsistantHash.hash(name); 
      query = "INSERT INTO `server_info` (`host`, `port, `s_port`, `name`, `hash`) VALUES (?, ?, ?, ?, ?)"; 

      statement = connection.prepareStatement(query, Statement.RETURN_GENERATED_KEYS); 
      statement.setString(1, host); //this line 
      statement.setInt(2, c_port); 
      statement.setInt(3, s_port); 
      statement.setString(4, name); 
      statement.setInt(5, hash); 

      statement.executeUpdate(); 
      statement.close(); 
+0

你任何机会在其他地方重复使用相同的'statement'变量/其他线程? – 2011-05-05 01:22:29

回答

6

你缺少端口列的匹配逃生:

`port 

应该

`port` 
+0

+1,不错。 – 2011-05-05 00:22:46

+0

这是很难捉住。我在这上面花了20分钟。 LOL – Jonah 2011-05-05 02:15:00

+0

非常感谢你btw – Jonah 2011-05-05 02:17:33

相关问题