执行查询时如何在JDBC的prepareStatement中设置in子句的值。
例:
connection.prepareStatement("Select * from test where field in (?)");
如果此条款可
我要做的是添加一个“?” 对于每个可能的值。
例如:
List possibleValues = ... StringBuilder builder = new StringBuilder(); for( int i = 0 ; i < possibleValue.size(); i++ ) { builder.append("?,"); } String stmt = "select * from test where field in (" + builder.deleteCharAt( builder.length() -1 ).toString() + ")"; PreparedStatement pstmt = ...
然后愉快地设置参数
int index = 1; for( Object o : possibleValue ) { pstmt.setObject( index++, o ); // or whatever it applies }