Ho bisogno di una funzione Java che restituisca i risultati di una query SQL SELECT
come parametro InputStream
per un altro sistema che invia il risultato su una rete.Risultato SQL SQL a InputStream
Tuttavia, lo InputStream
deve essere di un String
con delimitatori personalizzati (ad esempio, spesso, ma non sempre, CSV).
Mentre posso facilmente creare una funzione per recuperare il risultato, creare una delimitato String
, e infine convertire che String
a un InputStream
, il risultato SQL sarà spesso troppo grande per elaborare in memoria. Inoltre, l'elaborazione dell'intero set di risultati prima di restituire il risultato incorrerà in un tempo di attesa indesiderato.
Come posso restituire un InputStream
per eseguire un'iterazione sul risultato SQL e inviare i dati elaborati (delimitati) come vengono restituiti dal database?
hai esaminato il set di righe memorizzate nella cache jdbc? Potrebbe essere utile a quello che stai cercando di fare. http://docs.oracle.com/javase/1.5.0/docs/api/javax/sql/rowset/CachedRowSet.html – ChadNC
No, ma come potrebbe aiutarmi? Il problema non è lasciare la connessione aperta, ma avere i risultati in memoria. –
è ciò che è un set di righe memorizzato nella cache. fornisce un modo più semplice per inviare i risultati di una query su una rete ad altri dispositivi, applicazioni, ecc. – ChadNC