Alterando amostra de dados do conjunto de resultados

Baixar driver JDBC

Esta aplicação de exemplo do Microsoft JDBC Driver para SQL Server demonstra como recuperar um conjunto de dados atualizável a partir de uma base de dados SQL Server. Depois, usando métodos do objeto SQLServerResultSet , insere, modifica e finalmente elimina uma linha de dados do conjunto de dados.

O ficheiro de código deste exemplo chama-se UpdateResultSet.java e pode ser encontrado na seguinte localização:

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

Requerimentos

Para executar esta aplicação de exemplo, deve definir o classpath para incluir o ficheiro jar mssql-jdbc. Também vais precisar de acesso à base de dados de exemplos do AdventureWorks2025. Para mais informações sobre como definir o percurso de classes, veja Usar o Driver JDBC.

Observação

O Microsoft JDBC Driver para SQL Server fornece ficheiros de biblioteca de classes mssql-jdbc para serem usados dependendo das definições do seu Java Runtime Environment (JRE) preferidas. Para mais informações sobre qual ficheiro JAR escolher, consulte Requisitos de Sistema para o Driver JDBC.

Example

O código de exemplo faz uma ligação à base de dados de exemplo AdventureWorks2025. Depois, usando uma instrução SQL com o objeto SQLServerStatement , executa a instrução SQL e coloca os dados que devolve num objeto SQLServerResultSet atualizável.

De seguida, o código de exemplo usa o método moveToInsertRow para mover o cursor do conjunto de resultados para a linha de inserção. Depois, utiliza uma série de métodos updateString para inserir dados na nova linha. Depois disso, chama o método insertRow para persistir a nova linha de dados de volta à base de dados.

Após inserir a nova linha de dados, o código de exemplo utiliza uma instrução SQL para recuperar a linha previamente inserida. A partir daí, utiliza a combinação dos métodos updateString e updateRow para atualizar a linha de dados e novamente persistir essa alteração na base de dados.

Finalmente, o código de exemplo recupera a linha de dados previamente atualizada e depois apaga-a da base de dados usando o método 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 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();
        }
    }
}

Consulte também

Trabalhar com conjuntos de resultados