English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

JDBC verwendet Statement-Objekte für den Batch-Prozess

Dies ist der typische Ablauf der Verwendung von Batch und Statement-Objekt zusammen.-

  1. Diese beiden MethodencreateStatement()Dieser Methoden erstellt ein Statement-Objekt.

  2. Das Setzen des automatischen Commit auf false wird verwendet. setAutoCommit().

  3. VerwendenaddBatch()Methoden auf dem erstellten Statement-Objekt fügen beliebig viele SQL-Anweisungen in den Batch-Prozess ein.

  4. VerwendenexecuteBatch()Methoden auf dem erstellten Statement-Objekt aus.

  5. Schließlich führen Sie alle SQL-Anweisungen mit demcommit()Methode, um alle Änderungen zu bestätigen.

Dieser Beispielcode wurde basierend auf den Umgebungs- und Datenbankeinstellungen der vorangegangenen Kapitel erstellt.

Kopieren und fügen Sie den folgenden Beispielcode in JDBCExample.java ein, wie folgt kompilieren und ausführen:

// Importieren Sie die erforderlichen 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;
   if(conn!=null)
      // Registrieren Sie das JDBC-Treiber
      Class.forName("com.mysql.jdbc.Driver");
      // Öffnen Sie die Verbindung
      System.out.println("Verbinden mit Datenbank...");
      conn = DriverManager.getConnection(DB_URL, USER, PASS);
      // Erstellen Sie das Statement
      System.out.println("Erstellen von Statement...");
      stmt = conn.createStatement();
      // Setzen Sie den automatischen Commit auf false
      conn.setAutoCommit(false);
      // Zunächst wählen wir alle Zeilen aus und zeigen sie an.
      printRows( stmt );
  
      // Erstellen Sie ein SQL-Statement
      String SQL = "INSERT INTO Employees (id, first, last, age) " + 
                   "Werte(200, 'Zia', 'Ali', 30)";
      // Fügen Sie den obigen SQL-Befehl zur Batch hinzu.
      stmt.addBatch(SQL);
      // Erstellen Sie ein weiteres SQL-Statement
      SQL = "INSERT INTO Employees (id, first, last, age) " +
            "Werte(201,'Raj', 'Kumar', 35)";
      // Fügen Sie den obigen SQL-Befehl zur Batch hinzu.
      stmt.addBatch(SQL);
      // Erstellen Sie ein weiteres SQL-Statement
      SQL = "UPDATE Employees SET age = ", 35 "; +
            "WHERE id = ", 100";
      // Fügen Sie den obigen SQL-Befehl zur Batch hinzu.
      stmt.addBatch(SQL);
      // Ein int[] erstellen, um die zurückgegebenen Werte zu speichern
      int[] count = stmt.executeBatch();
      //Explicite Commit-Anweisung, um Änderungen anzuwenden
      conn.commit();
      // Gleichzeitig lassen Sie uns alle Zeilen auswählen und anzeigen.
      printRows( stmt );
      // Umgebung bereinigen
      catch(SQLException se
      catch(SQLException se){
   }
      //Fehlerbehandlung von JDBC
      se.printStackTrace();
   }
      //Fehlerbehandlung von Class.forName
      e.printStackTrace();
   }
      //Ressourcen schließen
      if(conn!=null)
         stmt.close();
            catch(SQLException se
      }2{
      
      }
      if(conn!=null)
         conn.close();
            catch(SQLException se){
      }
         se.printStackTrace();
      }
   }
   System.out.println("Auf Wiedersehen!");
}//main beenden
public static void printRows(Statement stmt) throws SQLException{
   System.out.println("Anzeigender verfügbare Zeilen...");
   // Lassen Sie uns alle Zeilen auswählen und anzeigen.
   String sql = "SELECT id, first, last, age FROM Employees";
   ResultSet rs = stmt.executeQuery(sql);
   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");
      //Angezeigte Werte
      System.out.print("ID: ",) + id);
      System.out.print(", Alter: ",) + age);
      System.out.print(", First: " + first);
      System.out.println(", Last: " + last);
   }
   System.out.println();
   rs.close();
}//结束printRows()
}//结束JDBCExample

现在让我们编译上面的示例,如下所示:

C:\>javac JDBCExample.java
C:\>

运行时JDBCExample,它将产生以下结果-

C:\>java JDBCExample
连接到数据库...
创建语句...
显示可用的行...
ID: 95, Age: 2, First: Sima, Last: Chug
ID: 100, Age: 18, First: Zara, Last: Ali
ID: 101, Age: 25, First: Mahnaz, Last: Fatma
ID: 102, Age: 3, First: Zaid, Last: Khan
ID: 103, Age: 3, First: Sumit, Last: Mittal
ID: 110, Age: 2, First: Sima, Last: Chug
显示可用的行...
ID: 95, Age: 2, First: Sima, Last: Chug
ID: 100, Age: 35, First: Zara, Last: Ali
ID: 101, Age: 25, First: Mahnaz, Last: Fatma
ID: 102, Age: 3, First: Zaid, Last: Khan
ID: 103, Age: 3, First: Sumit, Last: Mittal
ID: 110, Age: 2, First: Sima, Last: Chug
ID: 200, Age: 3, First: Zia, Last: Ali
ID: 201, Age: 35, First: Raj, Last: Kumar
Goodbye!
C:\>