Sql准备语句没有执行

时间:2012-03-28 14:31:54

标签: java mysql jdbc

我使用以下代码更新我的mysql表,其中moving50和moving200都是可变字符。

String sql = "update toplosers set Moving50 = ?, where Symbol = ?";  
PreparedStatement stmt = conn.prepareStatement(sql); 
for(int i1=0;i1<i;i1++)
 {   

       stmt.setString(1, moving50[i1]); 
       stmt.setString(2,symbol[i1]);


    stmt.addBatch(); 
} 
stmt.executeBatch();  
}

我收到“你的SQL语法出错了;请查看与你的MySQL服务器版本相对应的手册,以便在第1行的'where ='mysymbol''附近使用正确的语法 有什么问题

3 个答案:

答案 0 :(得分:2)

您在第一个参数后面有意外的逗号。

答案 1 :(得分:1)

避免使用'where'子句前的逗号字符。

答案 2 :(得分:1)

无需为where子句添加“逗号”。 现在检查一下。

String sql = "update toplosers set Moving50 = ? where Symbol = ?";  
PreparedStatement stmt = conn.prepareStatement(sql); 
for(int i1=0;i1<i;i1++)
 {   

       stmt.setString(1, moving50[i1]); 
       stmt.setString(2,symbol[i1]);


    stmt.addBatch(); 
} 
stmt.executeBatch();  
}

请参阅示例示例here