I need a Java function that returns the results of a SQL SELECT
query as an InputStream
parameter for another system that sends the result over a network.
However, the InputStream
must be of a String
with custom delimiters (i.e. often, but not always, CSV).
While I can easily create a function to retrieve the result, create a delimited String
, and finally convert that String
to an InputStream
, the SQL result will often be much too large to process in memory. Also, processing the entire result set before returning the result will incur an unwanted wait time.
How can I return an InputStream
to iterate over the SQL result and send the processed (delimited) data as it is returned from the database?