如何在执行查询时为 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 许可协议
3 回答2.6k 阅读✓ 已解决
3 回答4.1k 阅读✓ 已解决
8 回答3.6k 阅读
4 回答2.7k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答2.5k 阅读✓ 已解决
3 回答1.7k 阅读✓ 已解决
我所做的是添加一个“?”对于每个可能的值。
替代使用
StringBuilder
(这是 10 多年前的原始答案)然后愉快地设置params