結果セットのデータ サンプルの変更

JDBC ドライバーのダウンロード

この SQL Server 用の Microsoft JDBC Driver サンプル アプリケーションは、SQL Server データベースから更新可能なデータ セットを取得する方法を示しています。 そして、SQLServerResultSet オブジェクトのメソッドを使用して、データ セットのデータの行を挿入および変更し、最終的には削除します。

このサンプルのコード ファイルは UpdateResultSet.java という名前で、次の場所にあります。

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

必要条件

このサンプル アプリケーションを実行するには、クラスパスを設定して mssql-jdbc jar ファイルを含める必要があります。 また、AdventureWorks2022 サンプル データベースへのアクセス権も必要です。 クラスパスを設定する方法の詳細については、「JDBC ドライバーの使用」を参照してください。

注意

SQL Server 用 Microsoft JDBC ドライバー には、必要な Java ランタイム環境 (JRE) 設定に応じて使用される mssql-jdbc クラス ライブラリ ファイルが用意されています。 選択する JAR ファイルの詳細については、「JDBC Driver のシステム要件」を参照してください。

このサンプル コードは、AdventureWorks2022 サンプル データベースへの接続を行います。 次に、SQLServerStatement オブジェクトで SQL ステートメントを使用して、SQL ステートメントを実行し、返されたデータを更新可能な SQLServerResultSet オブジェクトに配置します。

次に、サンプル コードでは moveToInsertRow メソッドを使用して、結果セットのカーソルを挿入行に移動します。 次に、一連の updateString メソッドを使用して、新しい行にデータを挿入します。 その後、insertRow メソッドを呼び出して、新しいデータ行をデータベースに戻して保持します。

データの新しい行の挿入後、サンプル コードは前に挿入した行を SQL ステートメントを使用して取得します。 さらに、updateString メソッドと updateRow メソッドを組み合わせて使用して、データの行を更新し、再度データベースに戻して保持します。

最後に、サンプル コードは前に更新したデータの行を取得してから、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();
        }
    }
}

関連項目

結果セットの処理