English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Hier ist ein Beispiel, dassetSavepointundrollbackwurde in der Transaktionsanleitung beschrieben.
Dieses Beispielcode wurde basierend auf den Umgebungs- und Datenbankeinstellungen der vorherigen Kapitel geschrieben.
Kopieren und fügen Sie den folgenden Beispielcode in JDBCExample.java ein, kompilieren und führen Sie ihn aus:
//Schritt1.Importiere erforderliche Pakete import java.sql.*; public class JDBCExample { // Name des JDBC-Treibers und der Datenbank-URL static final String JDBC_DRIVER = "com.mysql.jdbc.Driver"; static final String DB_URL = "jdbc:mysql://localhost/EMP"; // Datenbankanmeldeinformationen static final String USER = "username"; static final String PASS = "password"; public static void main(String[] args) { Connection conn = null; Statement stmt = null; try{ //Schritt2:Registriere JDBC-Treiber Class.forName("com.mysql.jdbc.Driver"); //Schritt3:Erstelle Verbindung System.out.println("Verbinde mit Datenbank..."); conn = DriverManager.getConnection(DB_URL,USER,PASS); //Schritt4:Setzen Sie die automatische Commit-Einstellung auf false. conn.setAutoCommit(false); //Schritt5:Führen Sie die Abfrage aus, um den Statement zu löschen // Notwendige Parameter für RS-Beispiel. System.out.println("Erstelle Statement..."); stmt = conn.createStatement(); //Schritt6:Zeigen Sie alle verfügbaren Aufzeichnungen an. String sql = "SELECT id, first, last, age FROM Employees"; ResultSet rs = stmt.executeQuery(sql); System.out.println("List result set for reference...."); printRs(rs); // Schritt7:Löschen von ID größer als104Zeile // Bevor Sie das tun, müssen Sie jedoch einen Punkt speichern. Savepoint savepoint1 = conn.setSavepoint("ROWS_DELETED_1"); System.out.println("Deleting row...."); String SQL = "DELETE FROM Employees " + "WHERE ID = 110"; stmt.executeUpdate(SQL); // Schlecht... Wir haben den falschen Mitarbeiter gelöscht! //Schritt8:In dem Speicherpunkt2und rollen die Änderungen zurück. conn.rollback(savepoint1); // Schritt9:Löschen von ID größer als104Zeile // Bevor Sie das tun, müssen Sie jedoch einen Punkt speichern. Savepoint savepoint2 = conn.setSavepoint("ROWS_DELETED_2"); System.out.println("Deleting row...."); SQL = "DELETE FROM Employees" + "WHERE ID = 95"; stmt.executeUpdate(SQL); //Schritt10:Zeigen Sie alle verfügbaren Aufzeichnungen an. sql = "SELECT id, first, last, age FROM Employees"; rs = stmt.executeQuery(sql); System.out.println("List result set for reference...."); printRs(rs); //Schritt10:Umgebung bereinigen rs.close(); stmt.close(); conn.close(); }catch(SQLException se){ //JDBC-Fehler behandeln se.printStackTrace(); // Wenn es Fehler gibt, dann rollen Sie die Änderungen zurück. System.out.println("Rolling back data here...."); try{ if(conn!=null) conn.rollback(); }catch(SQLException se2){ se2.printStackTrace(); }//try beenden }catch(Exception e){ //Fehler von Class.forName behandeln e.printStackTrace(); }finally{ //zur Schließung von Ressourcen try{ if(stmt!=null) stmt.close(); }catch(SQLException se2){ } try{ if(conn!=null) conn.close(); }catch(SQLException se){ se.printStackTrace(); } }//try beenden System.out.println("Goodbye!"); }//main beenden public static void printRs(ResultSet rs) throws SQLException{ //Stellen Sie sicher, dass wir von der ersten Zeile beginnen rs.beforeFirst(); while(rs.next()){ //Nach Spaltenname suchen int id = rs.getInt("id"); int age = rs.getInt("age"); String first = rs.getString("first"); String last = rs.getString("last"); //Werte anzeigen System.out.print("ID: " + id); System.out.print(", Alter: " + age); System.out.print(", Vorname: " + first); System.out.println(", Nachname: " + last); } System.out.println(); }//Beenden von printRs() }//Beenden von JDBCExample
Lassen Sie uns den obigen Beispielcode wie folgt kompilieren:
C:\>javac JDBCExample.java C:\>
LaufzeitJDBCExampleEs wird folgende Ergebnisse erzeugt:-
C:\>java JDBCExample Verbindung zur Datenbank... Erstellen des Statements... Liste des Ergebnissets zur Referenz... ID: 95, Alter: 20, Erste: Sima, Nachname: Chug ID: 100, Alter: 18, Erste: Zara, Nachname: Ali ID: 101, Alter: 25, Erste: Mahnaz, Nachname: Fatma ID: 102, Alter: 30, Erste: Zaid, Nachname: Khan ID: 103, Alter: 30, Erste: Sumit, Nachname: Mittal ID: 110, Alter: 20, Erste: Sima, Nachname: Chug Zeile löschen... Zeile löschen... Liste des Ergebnissets zur Referenz... ID: 100, Alter: 18, Erste: Zara, Nachname: Ali ID: 101, Alter: 25, Erste: Mahnaz, Nachname: Fatma ID: 102, Alter: 30, Erste: Zaid, Nachname: Khan ID: 103, Alter: 30, Erste: Sumit, Nachname: Mittal ID: 110, Alter: 20, Erste: Sima, Nachname: Chug Auf Wiedersehen! C:\>