2016-05-23 17 views
7

Qual è la differenza tra l'impostazione di una dimensione di recupero su Istruzione vs ResultSet? La documentazione Oracle dice che se la dimensione del recupero è impostata su un'istruzione, lo stesso viene utilizzato anche da ResultSet, purché la dimensione del recupero sia impostata prima di ottenere il set di risultati. Che differenza fa se l'ho impostato su Statement o su ResultSet? Sto usando il database Oracle. Di seguito è la documentazione di Oracle su di esso:Differenza tra l'impostazione di una dimensione di recupero su Istruzione vs ResultSet

dimensioni di raccolta

Per impostazione predefinita, quando Oracle JDBC esegue una query, si recupera un set di risultati di 10 righe alla volta dal cursore del database. Questo è il valore predefinito per la dimensione di recupero della riga Oracle. È possibile modificare il numero di righe recuperate con ogni viaggio nel cursore del database modificando il valore della dimensione di recupero della riga.

JDBC standard consente inoltre di specificare il numero di righe recuperate con ogni round-trip del database per una query e questo numero viene indicato come dimensione di recupero. In Oracle JDBC, il valore di prefetch delle righe viene utilizzato come dimensione di recupero predefinita in un oggetto istruzione. L'impostazione della dimensione di recupero sovrascrive l'impostazione di precaricamento delle righe e influisce sulle query successive eseguite attraverso tale oggetto di istruzione.

La dimensione di recupero viene anche utilizzata in un set di risultati. Quando l'oggetto statement esegue una query, la dimensione di recupero dell'oggetto statement viene passata all'oggetto set di risultati prodotto dalla query. Tuttavia, è anche possibile impostare la dimensione del recupero nell'oggetto set di risultati per sostituire la dimensione di recupero dell'istruzione che è stata passata a esso.

risposta

4

L'unico posto che le dimensioni di recupero contano davvero è il ResultSet. Quando viene creato uno ResultSet, ottiene la dimensione di recupero dallo Statement utilizzato per crearlo, ma può essere modificato in seguito.

Pensare alla dimensione di recupero di Statement come predefinita che verrà passata a tutti i ResultSet s creati. Se non si desidera utilizzare questo valore predefinito, è possibile sostituirlo.

1

Non c'è differenza. Se si imposta la dimensione di recupero sull'istruzione, verrà applicata a tutte le istanze di ResultSet che provengono da questa istruzione.

+0

C'è una leggera differenza. La dimensione di recupero impostata sull'istruzione verrà utilizzata per il primo recupero. Quando viene restituito il set di risultati, il primo recupero viene completato in modo che l'unico modo per controllare la dimensione del primo recupero sia impostarlo sull'istruzione. Se si conosce che una particolare query restituisce solo una riga, allora l'impostazione della dimensione di recupero su 1 sul set di risultati non farà nulla in quanto le dimensioni di recupero dell'istruzione saranno già state utilizzate per recuperare una riga prima che il codice abbia accesso al set di risultati da impostare la dimensione del recupero a uno. –

Problemi correlati