I have looked and have been unable to find an answer to the following challenge I am having. It seems pretty straightforward but I have been unable to resolve it.
I have an ArrayList
of record ids that are type Long
-> ArrayList<Long>
. I would like to use this list of record ids to select rows from another table. So far so good. Now onto the challenge...
a) I am using a prepared statement to select the data from a table using the ArrayList
as input for this.
selectPS = dbConnection.prepareStatement("select columnA from tableA where id in ?");
Question on the above - how should the parameter be defined? The above does not seem correct for an ArrayList
type parameter.
b) I am also running into problems when setting the value of the parameter for the prepared statement. There is no method for setting an ArrayList
type value and I see no other viable options.
---> selectPS.set?????(1, arraylistParameter); ResultSet rs = selectPS.executeQuery();
Any help or direction you can set me in is greatly appreciated.
Thank you.
Once a PreparedStatement is prepared, it can be reused after execution. You reuse a PreparedStatement by setting new values for the parameters and then execute it again.
and then use setParameterList("ids", list) passing your list. Hibernate will do all the expansion for you! Show activity on this post. All you have to do is build the comma separated list of items and insert it in the string.
You may want to use setArray
method as mentioned in the javadoc below:
Sample Code:
PreparedStatement pstmt = conn.prepareStatement("select * from employee where id in (?)"); Array array = conn.createArrayOf("VARCHAR", new Object[]{"1", "2","3"}); pstmt.setArray(1, array); ResultSet rs = pstmt.executeQuery();
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With