miao84
07-02-2010, 14:07
Per perfezionare le query di un mio progetto devo implementare le transazioni per la buona (o cattiva riuscita) delle query. Solo che non credo di averlo fatto nel modo migliore, cioè secondo me come ho fatto qui nell'operazione di rollback non ci andrà mai (il metodo è impostato cosi poichè precedentemente non erano previste le transazioni):
public String aggiornamento (String id, String piva) {
String ris = null;
String q = null, q1 = null;
avvia();
q = "UPDATE ....";
q1 = "UPDATE ....";
try {
connessione.setAutoCommit(false);// Attivazione del supporto delle transazioni
Statement st = connessione.createStatement();
Statement st2 = connessione.createStatement();
st.executeUpdate(q);
st2.executeUpdate(q1);
ris = "ok";
if (ris.equals("ok")) {
connessione.commit();//Rende permanenti tutte le modifiche
} else {
connessione.rollback();// Annulla tutte le modifiche
connessione.close();
}
} catch (Exception e) {
//SE VIENE GENERATA UN SQLException LA RESTITUISCO AL CLIENT PER INFORMARLO
ris = e.toString();
System.out.println(ris);
}
return ris;
}
Qualcuno può dirmi come posso modificare il codice in modo da far funzionare a dovere le transazioni?
public String aggiornamento (String id, String piva) {
String ris = null;
String q = null, q1 = null;
avvia();
q = "UPDATE ....";
q1 = "UPDATE ....";
try {
connessione.setAutoCommit(false);// Attivazione del supporto delle transazioni
Statement st = connessione.createStatement();
Statement st2 = connessione.createStatement();
st.executeUpdate(q);
st2.executeUpdate(q1);
ris = "ok";
if (ris.equals("ok")) {
connessione.commit();//Rende permanenti tutte le modifiche
} else {
connessione.rollback();// Annulla tutte le modifiche
connessione.close();
}
} catch (Exception e) {
//SE VIENE GENERATA UN SQLException LA RESTITUISCO AL CLIENT PER INFORMARLO
ris = e.toString();
System.out.println(ris);
}
return ris;
}
Qualcuno può dirmi come posso modificare il codice in modo da far funzionare a dovere le transazioni?