如何在执行查询时为 JDBC 中的 preparedStatement 中的 in 子句设置值。
例子:
connection.prepareStatement("Select * from test where field in (?)");
如果这个子句可以包含多个值,我该怎么做。有时我事先知道参数列表,有时我事先不知道。如何处理这种情况?
原文由 Harish 发布,翻译遵循 CC BY-SA 4.0 许可协议
如何在执行查询时为 JDBC 中的 preparedStatement 中的 in 子句设置值。
例子:
connection.prepareStatement("Select * from test where field in (?)");
如果这个子句可以包含多个值,我该怎么做。有时我事先知道参数列表,有时我事先不知道。如何处理这种情况?
原文由 Harish 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以使用 setArray
下面 javadoc 中提到的方法:
代码:
PreparedStatement statement = connection.prepareStatement("Select * from test where field in (?)");
Array array = statement.getConnection().createArrayOf("VARCHAR", new Object[]{"A1", "B2","C3"});
statement.setArray(1, array);
ResultSet rs = statement.executeQuery();
原文由 madx 发布,翻译遵循 CC BY-SA 3.0 许可协议
8 回答6.8k 阅读
4 回答1k 阅读✓ 已解决
1 回答2.5k 阅读✓ 已解决
4 回答480 阅读✓ 已解决
1 回答1.1k 阅读✓ 已解决
2 回答651 阅读✓ 已解决
2 回答1.2k 阅读
我所做的是添加一个“?”对于每个可能的值。
替代使用
StringBuilder
(这是 10 多年前的原始答案)然后愉快地设置params