un punto di salvataggio segna un punto che l'operazione corrente può ripristinare. Invece di ripristinare tutte le sue modifiche, può scegliere di ripristinare solo alcune di esse. Ad esempio, si supponga:
- avviare una transazione,
- inserto 10 righe in una tabella,
- impostare un punto di salvataggio,
- inserire un altro 5 file,
- rollback al punto di salvataggio,
- commit la transazione.
Dopo aver eseguito questa operazione, la tabella conterrà le prime 10 righe inserite. Le altre 5 righe saranno state eliminate dal rollback.
L'impostazione di un punto di salvataggio non "salva" alcun dato nel database. Non rende visibili le modifiche del database a qualsiasi altra transazione. Un punto di salvataggio è solo un indicatore a cui la transazione corrente può eseguire il rollback.
fonte
2011-09-02 20:00:32
Questo è sbagliato. Come indicato su [http://docs.oracle.com/](http://docs.oracle.com/javase/tutorial/jdbc/basics/transactions.html#set_roll_back_savepoints) 'Il metodo Connection.setSavepoint, imposta un punto di salvataggio oggetto all'interno della transazione corrente. Il metodo Connection.rollback è sovraccarico per prendere un argomento Savepoint. –
@ ValentinoDell'Aica: quindi cosa c'è di sbagliato nella mia affermazione? I punti di salvataggio ** sono ** una funzione DBMS. L'API JDBC ti dà semplicemente accesso a quella funzione. Se il DBMS non li supporta, non è possibile utilizzarli da JDBC –