Partilhar via


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