commons-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Robert Huffman <robert.huff...@gmail.com>
Subject Re: [dbutils] Would it be possible to have parameters passed to QueryRunner as an Iterable?
Date Thu, 19 May 2016 13:32:26 GMT
Actually, Iterable doesn't work: in fillStatement you need to know the size
and that's not easily obtainable from an Iterable. So I'm using Collection
instead.

I cloned the project and have QueryRunner.query working already. Basically
I changed the private query method to take a Collection instead of varargs
for the parameters. A public method is added that takes a Collection, and
the public methods that take arrays simply use Arrays.asList on the
arrays.  You can check out the approach here:

https://github.com/rhuffman/commons-dbutils/tree/feature/allow-collections-of-parameters-in-QueryRunner

I will take the same approach on update, insert and batch, create a JIRA
and attach a patch.




On Thu, May 19, 2016 at 6:02 AM, Benedikt Ritter <britter@apache.org> wrote:

> Hello Robert,
>
> Robert Huffman <robert.huffman@gmail.com> schrieb am Mi., 18. Mai 2016 um
> 19:00 Uhr:
>
> > 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.
> >
>
> Sounds like a reasonable addition, although I'm not sure I understand your
> proposal with the "Iterable wrapper around an array". Feel free to create a
> JIRA and provide a patch/github PR for adding this functionality. Further
> design discussions about this addition should go to the dev mailing list.
>
> Benedikt
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message