Das Statement-Objekt führt Static SQL-Anweisungen aus. SQL-Anweisungen wie INSERT, UPDATE, DELETE, die keine Ergebnismengen zurückgeben, können Sie mithilfe der Methode executeUpdate des Statement-Objekts ausführen. Anweisungen wie CREATE TABLE und andere Anweisungen zur Datendefinition können auch mit executeUpdate ausgeführt werden.
Wenn Sie den iAnywhere JDBC-Treiber verwenden, um Batch-Einfügungen durchzuführen, wird empfohlen, eine kleine Spaltengröße zu verwenden. Die Verwendung von Batch-Einfügungen, um große Binär- oder Zeichendaten in long binary- oder long varchar-Spalten einzufügen, wird nicht empfohlen und kann zu einer Verminderung der Performance führen. Der Grund dafür ist, dass der iAnywhere JDBC-Treiber große Mengen Speicher zuweisen muss, um die einzelnen Batch-Einfügezeilen aufzunehmen. In allen anderen Fällen sollte die Verwendung von Batch-Einfügungen eine bessere Performance als die Verwendung von einzelnen Einfügungen liefern.
Wenn Sie Ihre Anwendung nicht für Batch-Einfügungen verwenden wollen, bei denen große Daten in eine long binary- oder long varchar-Spalte eingefügt werden, ist die maximale Standardfeldgröße einer Batch-Einfügezeile 256 KByte. Wenn Ihre Anwendung mehr als 256 KByte an Spaltendaten einfügen soll, muss eine größere maximale Feldgröße mit der Statement.setMaxFieldSize()-Methode angegeben werden, bevor die Stapeleinfügung durchgeführt wird.
Das folgende Codefragment veranschaulicht, wie eine INSERT-Anweisung ausgeführt wird. Es verwendet ein Statement-Objekt, das an die InsertStatic-Methode als Argument übergeben wurde.
public static void InsertStatic( Statement stmt ) { try { int iRows = stmt.executeUpdate( "INSERT INTO Departments (DepartmentID, DepartmentName)" + " VALUES (201, 'Eastern Sales')" ); // Print the number of rows inserted System.out.println(iRows + " rows inserted"); } catch (SQLException sqe) { System.out.println("Unexpected exception : " + sqe.toString() + ", sqlstate = " + sqe.getSQLState()); } catch (Exception e) { e.printStackTrace(); } } |
Dieses Codefragment ist Teil der JDBCExample-Klasse, die im Verzeichnis Beispielverzeichnis\SQLAnywhere\JDBC enthalten ist.
Die Methode executeUpdate gibt eine Ganzzahl zurück, die die Anzahl der Zeilen ausdrückt, die von dem Vorgang betroffen waren. In diesem Fall würde ein erfolgreicher INSERT-Vorgang den Wert Eins (1) zurückgeben.
Bei der Ausführung als serverseitige Klasse erfolgt die Ausgabe von System.out.println
im Fenster "Datenbankservermeldungen".
Über Interactive SQL stellen Sie als Benutzer DBA eine Verbindung mit der Beispieldatenbank her.
Die Klasse JDBCExample muss installiert sein.
Weitere Hinweise, wie Sie die Java-Beispiele installieren können, finden Sie unter Vorbereitung der Beispiele.
Definieren Sie eine gespeicherte Prozedur namens JDBCExample, die als Wrapper für die Methode JDBCExample.main in der Klasse agiert:
CREATE PROCEDURE JDBCExample( IN arg CHAR(50) ) EXTERNAL NAME 'JDBCExample.main([Ljava/lang/String;)V' LANGUAGE JAVA; |
Rufen Sie die Methode JDBCExample.main wie folgt auf:
CALL JDBCExample( 'insert' ); |
Die Argumentzeichenfolge 'insert'
bewirkt, dass die Methode InsertStatic aufgerufen wird.
Vergewissern Sie sich, dass in die Tabelle Departments eine zusätzliche Zeile eingefügt wurde.
SELECT * FROM Departments; |
Das Beispielprogramm zeigt den aktualisierten Inhalt der Tabelle Departments im Fenster "Datenbankservermeldungen" an.
In der Beispielklasse DeleteStatic gibt es eine ähnliche Methode, die zeigt, wie die soeben hinzugefügte Zeile gelöscht wird. Rufen Sie die Methode JDBCExample.main wie folgt auf:
CALL JDBCExample( 'delete' ); |
Die Argumentzeichenfolge 'delete'
bewirkt, dass die Methode DeleteStatic aufgerufen wird.
Überprüfen Sie, ob die Zeile aus der Tabelle Departments gelöscht wurde.
SELECT * FROM Departments; |
Das Beispielprogramm zeigt den aktualisierten Inhalt der Tabelle Departments im Fenster "Datenbankservermeldungen" an.
Kommentieren Sie diese Seite in DocCommentXchange. Senden Sie uns Feedback über diese Seite via E-Mail. |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |