我有一个非常简单的SQL“更新表,其中ID在(1,2,3)”
我在做什么时
String sql = "update table where ID in (?)";
List<Integer> ids = new ArrayList();
ids.add(1);
ids.add(2);
ids.add(3);
jdbc.update(sql, new Object[] { ids });
我在输出中收到了错误的sql
update table where ID in ('1,2,3')
如何摆脱这个额外的报价?
答案 0 :(得分:4)
很遗憾,您无法在Array
中传递Parameter
作为PreparedStatement
。类似的问题可以在这里找到:
PreparedStatement IN clause alternatives?
可以在这里找到一些替代方案:
http://www.javaranch.com/journal/200510/Journal200510.jsp#a2
答案 1 :(得分:0)
您的SQL语句必须采用以下形式:
UPDATE table_name
SET column1=?, column2=?,...
WHERE some_column=some_value
即。请注意
?
符号setInt(pos, value)
来电查看PreparedStatement tutorial了解详情。摘录如下:
String updateString =
"update " + dbName + ".COFFEES " +
"set SALES = ? where COF_NAME = ?";
updateSales = con.prepareStatement(updateString);
updateSales.setInt(1, 100);
....