1. Was ist eine Java-Transaktion?
Es wird allgemein angenommen, dass Transaktionen nur für die Datenbank relevant sind.
Transaktionen müssen den von ISO/IEC festgelegten ACID-Grundsätzen entsprechen. ACID ist die Abkürzung für Atomizität, Konsistenz, Isolation und Haltbarkeit. Die Atomizität einer Transaktion bedeutet, dass jeder Fehler während der Transaktionsausführung dazu führt, dass alle von der Transaktion vorgenommenen Änderungen ungültig werden. Konsistenz bedeutet, dass beim Scheitern einer Transaktion alle von der Transaktion betroffenen Daten in den Zustand vor der Ausführung der Transaktion zurückversetzt werden sollten. Isolation bedeutet, dass Änderungen an Daten während der Transaktionsausführung für andere Transaktionen nicht sichtbar sind, bevor die Transaktion festgeschrieben wird. Persistenz bedeutet, dass der Status der übermittelten Daten korrekt sein sollte, wenn die Transaktionsausführung fehlschlägt.
Nach allgemeinem Verständnis handelt es sich bei einer Transaktion um eine Reihe atomarer Operationseinheiten. Aus Datenbanksicht handelt es sich um eine Reihe von SQL-Anweisungen. Wenn bei der Ausführung einer der Anweisungen aus irgendeinem Grund ein Fehler auftritt Zuvor ausgeführte Anweisungen werden storniert. Die einfachere Antwort lautet: Entweder sind alle Ausführungen erfolgreich, oder sie werden abgebrochen und nicht ausgeführt.
Was ist eine Java-Transaktion, da das Konzept der Transaktionen aus der Datenbank stammt? Was ist die Verbindung?
Wenn ein Java-Anwendungssystem eine Datenbank betreiben möchte, wird dies tatsächlich über JDBC implementiert. Hinzufügung, Änderung und Löschung werden alle indirekt über entsprechende Methoden implementiert, und die Transaktionssteuerung wird entsprechend auch an den Java-Programmcode übertragen. Daher werden Datenbankoperationstransaktionen traditionell als Java-Transaktionen bezeichnet.
2. Warum Transaktionen erforderlich sind
Transaktionen werden zur Lösung von Datensicherheitsvorgängen vorgeschlagen. Die Transaktionskontrolle dient eigentlich der Kontrolle des sicheren Datenzugriffs. Hier ein einfaches Beispiel: Beispielsweise möchte Konto A im Banküberweisungsgeschäft 1.000 Yuan von seinem eigenen Konto auf Konto B überweisen. Dabei muss zunächst der Saldo von Konto A um 1.000 Yuan abgezogen werden, dann der Saldo von Konto B um 1.000 Yuan erhöht werden. Wenn im Zwischennetzwerk ein Problem vorliegt, der Abzug von 1.000 Yuan vom Konto von A beendet wurde und der Betrieb von B aufgrund einer Netzwerkunterbrechung fehlschlägt, scheitert das gesamte Geschäft und es muss eine Kontrolle vorgenommen werden, um die Stornierung der Überweisung zu verlangen Geschäft von A's Konto. Dies kann die Korrektheit des Geschäfts sicherstellen. Die Verringerung der Mittel von Konto A und die Erhöhung von Mitteln von Konto B werden in einer Transaktion zusammengefasst. So bleibt die Sicherheit der Daten gewahrt.
3. Arten von Java-Transaktionen
Es gibt drei Arten von Java-Transaktionen: JDBC-Transaktionen, JTA-Transaktionen (Java Transaction API) und Containertransaktionen.
1. JDBC-Transaktionen
JDBC-Transaktionen werden mithilfe von Verbindungsobjekten gesteuert. Die JDBC-Verbindungsschnittstelle (java.sql.Connection) bietet zwei Transaktionsmodi: automatische Übermittlung und manuelle Übermittlung. java.sql.Connection bietet die folgenden Methoden zur Steuerung von Transaktionen:
public void setAutoCommit(boolean)
öffentlicher boolescher getAutoCommit()
öffentliches void commit()
public void rollback()
Wenn Sie die JDBC-Transaktionsabgrenzung verwenden, können Sie mehrere SQL-Anweisungen in einer einzigen Transaktion kombinieren. Ein Nachteil von JDBC-Transaktionen besteht darin, dass der Umfang der Transaktion auf eine Datenbankverbindung beschränkt ist. Eine JDBC-Transaktion kann nicht mehrere Datenbanken umfassen.