Transaktionssicherheit mit SQLite

  • Antworten:3
Funkfeuer
  • Forum-Beiträge: 38

25.02.2012, 20:26:09 via Website

Hallo,

ich hätte eine generelle Frage zu Transaktionen mit SQLite.

Ich habe verschiedene SQL-Anweisungen in den Methoden methode1(), methode2() und methode3() gekapselt.
In diesen Methoden werden INSERT-Befehle in verschiedenen Tabellen durchgeführt.
Sollte es in einer dieser Methoden zu einem Fehler/Abbruch kommen, sollen auch in allen anderen Methoden die INSERT-Befehle rückgängig gemacht werden (Rollback).
In den Methoden werden neben Datenbank-Operationen auch z. B. Benutzereingaben validiert. Es wird also auch Logik durchgeführt, die nix mit der Datenbank zu tun haben.
So soll z. B. wenn ein Webservice-Aufruf erfolgreich war, ein INSERT ausgeführt werden - oder halt nicht. Das hätte dann aber auch Auswirkungen auf die anderen Methoden, dass dann die vorigen INSERT's erhalten (Commit) bleiben oder eben wieder rückgängig gemacht werden (Rollback).

Ist das so wie im folgenden Beispiel durchführbar:
1sqlDatenbank.beginTransaction();
2try {
3 methode1(); //hier werden Benutzereingaben validiert
4 methode2(); //hier wird ein Webservice aufgerufen
5 methode3(); //hier erfolgen Logging-Einträge
6
7 sqlDatenbank.setTransactionSuccessful();
8
9} catch (Exception e) {
10 e.toString();
11}finally{
12 sqlDatenbank.endTransaction();
13}

cu
Chris

Antworten
Gelöschter Account
  • Forum-Beiträge: 24

25.02.2012, 23:56:08 via Website

Genau so macht man das - vorausgesetzt die Methoden schmeißen im Fehlerfall Exceptions.

Funkfeuer

Antworten
Funkfeuer
  • Forum-Beiträge: 38

01.03.2012, 16:46:06 via Website

vielen Dank für's Feedback - jetzt fühle ich mich besser. :grin:
Werde aber noch meine Exceptions prüfen!

Antworten