IN子句中参数列表的PreparedStatement

IN子句中参数列表的PreparedStatement

如何在执行查询时在JDBC中的prearedStatement中为in子句设置值。

例子:

connection.prepareStatement("Select * from test where field in (?)");

如果这个in-子句可以保存多个值,我如何才能做到这一点。有时我事先知道参数列表,有时我不知道。如何处理这个案子?



冉冉说
浏览 498回答 3
3回答

浮云间

我所做的就是添加一个“?”每一种可能的价值。例如:List&nbsp;possibleValues&nbsp;=&nbsp;...&nbsp;StringBuilder&nbsp;builder&nbsp;=&nbsp;new&nbsp;StringBuilder();for(&nbsp;int&nbsp;i&nbsp;=&nbsp;0&nbsp;;&nbsp;i&nbsp;<&nbsp;possibleValue.size();&nbsp;i++&nbsp;)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;builder.append("?,");}String&nbsp;stmt&nbsp;=&nbsp;"select&nbsp;*&nbsp;from&nbsp;test&nbsp;where&nbsp;field&nbsp;in&nbsp;("&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;builder.deleteCharAt(&nbsp;builder.length()&nbsp;-1&nbsp;).toString()&nbsp;+&nbsp;")";PreparedStatement&nbsp;pstmt&nbsp;=&nbsp;...然后高高兴兴地设置帕林int&nbsp;index&nbsp;=&nbsp;1;for(&nbsp;Object&nbsp;o&nbsp;:&nbsp;possibleValue&nbsp;)&nbsp;{ &nbsp;&nbsp;&nbsp;pstmt.setObject(&nbsp;&nbsp;index++,&nbsp;o&nbsp;);&nbsp;//&nbsp;or&nbsp;whatever&nbsp;it&nbsp;applies&nbsp;}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java