If a prepared statement is built dynamically, with a variable number of parameters, and parameters are collected in a Collection of some sort instead of an array, usage QueryRunner requires that the collection be converted to an array first. This means the parameters are iterated twice: once to convert to an array and once again in QueryRunner.fillStatement.
Would it violate a design decision if methods were added to QueryRunner that took the parameters as an Iterable instead of as varags? It should be straightforward to add such methods and use an Iterable wrapper around an array to have the varargs methods invoke the new methods that take Iterables. I would be happy to submit a patch if this does not violate some sort of design decision I am not aware of and if the implementation approach sounds reasonable.
