Vorrei scrivere una funzione java che accetta una query SQL e restituisce un ResultSet per l'elaborazione altrove. Questo non può essere fatto come un ResultSet è morto una volta che la connessione è stata chiusa.CachedRowSet: può ancora essere utilizzato per contenere i dati ResultSet?
Googling around Ho trovato uno VERY OLD (2004) OReilly article che aveva qualcosa che sembrava la cura: CachedRowSet. Basta rilasciare il ResultSet, il CachedRowSet salva i dati, consente di chiudere la connessione e giocare con i dati altrove utilizzando il CachedRowSet restituito.
L'articolo fa riferimento a implementazioni di CachedRowSet da parte di Sun, che sembrano essere in nessun posto da trovare.
I javadoc moderni (per Java 1.5 e versioni successive) sembrano avere qualcosa con lo stesso nome, "CachedRowSet", che è più di un semplice titolare di dati ResultSet. Quel "CachedRowSet" sembra eseguire l'intera elaborazione del database dall'ottenere connessioni e tutto il resto.
È "CachedRowSet" la stessa cosa di cui si parla nel vecchio articolo?
Vorrei qualcosa di semplice, come nel vecchio articolo. Qualcosa per ritagliare un ResultSet in per l'elaborazione dopo la chiusura del conneciton.
Esiste un animale simile?
Grazie
MBFG; Sto usando Oracle e speravo di usarlo come misura temporanea mentre pulivo un po 'di codice legacy e apprendo un modo migliore di fare le cose in modo dati (framework di database, ecc.). Non ero in grado di trovare nulla su dove trovarlo, come usarlo. Eventuali indizi oltre Googling? – Steve
In che modo l'utilizzo di pojos sostituisce l'ottenimento di un "ResultSet" per scorrere al di fuori della funzione in cui è stato ottenuto? – Steve
Cosa ti fa pensare che "com.sun.rowset.CachedRowSetImpl' non sia supportato? L'interfaccia [CachedRowSet] (http://docs.oracle.com/javase/7/docs/api/javax/sql/rowset/CachedRowSet.html) è in Java 7 e la sua javadoc afferma che "l'implementazione di riferimento dell'interfaccia CachedRowSet fornita da Oracle Corporation è un'implementazione standard: gli sviluppatori possono utilizzare questa implementazione così come è". L'implementazione di riferimento è 'com.sun.rowset.CachedRowSetImpl'; questo non sembra non supportato da me. –