Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Diese Beispielanwendung für den Microsoft JDBC-Treiber für SQL Server veranschaulicht, wie Sie ein aktualisierbares Dataset aus einer SQL Server-Datenbank abrufen. Anschließend wird mit den Methoden der SQLServerResultSet-Klasse eine Datenzeile in das Datenset eingefügt, geändert und schließlich wieder gelöscht.
Die Codedatei für dieses Beispiel heißt „UpdateResultSet.java“ und befindet sich im folgenden Pfad:
\<installation directory>\sqljdbc_<version>\<language>\samples\resultsets
Requirements (Anforderungen)
Wenn Sie diese Beispielanwendung ausführen möchten, müssen Sie die Datei „mssql-jdbc.jar“ in den Klassenpfad aufnehmen. Darüber hinaus benötigen Sie Zugriff auf die AdventureWorks2022-Beispieldatenbank. Weitere Informationen zum Festlegen des Klassenpfads finden Sie unter mit dem JDBC-Treiber.
Hinweis
Der Microsoft JDBC-Treiber für SQL Server enthält die Klassenbibliotheksdateien „mssql-jdbc“ für die jeweilige Verwendung mit Ihren bevorzugten JRE-Einstellungen (Java Runtime Environment). Weitere Informationen zum Auswählen der richtigen JAR-Datei finden Sie unter Systemanforderungen für den JDBC-Treiber.
Beispiel
Der Beispielcode stellt eine Verbindung mit der AdventureWorks2022-Beispieldatenbank her. Anschließend wird mithilfe einer SQL-Anweisung mit dem SQLServerStatement-Objekt die SQL-Anweisung ausgeführt und die daten, die sie in ein aktualisierbares SQLServerResultSet-Objekt zurückgibt, platziert.
Danach wird im Beispielcode die moveToInsertRow-Methode verwendet, um den Resultsetcursor in die Einfügezeile zu verschieben. Anschließend werden die Daten mithilfe mehrerer updateString-Methoden in die neue Zeile eingefügt. Danach wird die insertRow-Methode aufgerufen, um die neue Datenzeile in der Datenbank zu speichern.
Nach dem Einfügen der neuen Datenzeile verwendet der Beispielcode eine SQL-Anweisung, um die zuvor eingefügte Zeile abzurufen. Danach wird die Datenzeile mit einer Kombination aus updateString
- und updateRow-Methoden aktualisiert und erneut in der Datenbank gespeichert.
Schließlich wird die zuvor aktualisierte Datenzeile abgerufen und mit der deleteRow-Methode aus der Datenbank gelöscht.
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class UpdateResultSet {
public static void main(String[] args) {
// Create a variable for the connection string.
String connectionUrl = "jdbc:sqlserver://<server>:<port>;encrypt=true;databaseName=AdventureWorks;user=<user>;password=<password>";
try (Connection con = DriverManager.getConnection(connectionUrl);
Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);) {
// Create and execute a SQL statement, retrieving an updateable result set.
String SQL = "SELECT * FROM HumanResources.Department;";
ResultSet rs = stmt.executeQuery(SQL);
// Insert a row of data.
rs.moveToInsertRow();
rs.updateString("Name", "Accounting");
rs.updateString("GroupName", "Executive General and Administration");
rs.updateString("ModifiedDate", "08/01/2006");
rs.insertRow();
// Retrieve the inserted row of data and display it.
SQL = "SELECT * FROM HumanResources.Department WHERE Name = 'Accounting';";
rs = stmt.executeQuery(SQL);
displayRow("ADDED ROW", rs);
// Update the row of data.
rs.first();
rs.updateString("GroupName", "Finance");
rs.updateRow();
// Retrieve the updated row of data and display it.
rs = stmt.executeQuery(SQL);
displayRow("UPDATED ROW", rs);
// Delete the row of data.
rs.first();
rs.deleteRow();
System.out.println("ROW DELETED");
}
// Handle any errors that may have occurred.
catch (SQLException e) {
e.printStackTrace();
}
}
private static void displayRow(String title,
ResultSet rs) throws SQLException {
System.out.println(title);
while (rs.next()) {
System.out.println(rs.getString("Name") + " : " + rs.getString("GroupName"));
System.out.println();
}
}
}