Esempio di modifica dei dati dei set di risultati

Scaricare il driver JDBC

Questa applicazione di esempio di Microsoft JDBC Driver for SQL Server illustra come recuperare un set di dati aggiornabile da un database di SQL Server. Usando quindi i metodi dell'oggetto SQLServerResultSet viene inserita, modificata e infine eliminata una riga di dati dal set di dati.

Il file di codice per questo esempio è denominato UpdateResultSet.java ed è disponibile nel percorso seguente:

\<installation directory>\sqljdbc_<version>\<language>\samples\resultsets

Requisiti

Per eseguire questa applicazione di esempio, è necessario impostare il classpath in modo da includere il file con estensione jar mssql-jdbc. È inoltre necessario l'accesso al database di esempio AdventureWorks2022. Per altre informazioni su come impostare il classpath, vedere Uso del driver JDBC.

Nota

Microsoft JDBC Driver per SQL Server fornisce i file di libreria di classi mssql-jdbc da usare a seconda delle impostazioni preferite di Java Runtime Environment (JRE). Per altre informazioni su quale file JAR scegliere, vedere Requisiti di sistema per il driver JDBC.

Esempio

Il codice di esempio effettua una connessione al database di esempio AdventureWorks2022. Quindi, usando un'istruzione SQL con l'oggetto SQLServerStatement, viene eseguita l'istruzione SQL e i dati restituiti vengono posizionati in un oggetto SQLServerResultSet aggiornabile.

Il codice di esempio usa quindi il metodo moveToInsertRow per spostare il cursore del set di risultati nella riga di inserimento. Usa quindi una serie di metodi updateString per inserire i dati nella nuova riga. Successivamente, chiama il metodo insertRow per rendere persistente la nuova riga di dati nel database.

Dopo aver inserito la nuova riga di dati, il codice di esempio usa un'istruzione SQL per recuperare la riga inserita in precedenza. A questo punto, verrà usata la combinazione di metodi updateString e updateRow per aggiornare la riga di dati e renderla di nuovo permanente nel database.

Infine, recupera la riga di dati precedentemente aggiornata e la elimina dal database usando il metodo deleteRow.

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 an 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();
        }
    }
}

Vedi anche

Uso dei set di risultati