パラメーターがある SQL ステートメントの使用

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

IN パラメーターを含む SQL ステートメントを使用して SQL Server データベースのデータを処理する場合は、SQLServerPreparedStatement クラスの executeQuery メソッドを使用して、要求されたデータを含む SQLServerResultSet を取得することができます。 この場合、最初に SQLServerConnection クラスの prepareStatement メソッドを使用して、SQLServerPreparedStatement オブジェクトを作成する必要があります。

SQL ステートメントを作成する場合、IN パラメータは ? (疑問符) 文字で指定します。これはパラメータ値のプレースホルダになり、後で SQL ステートメントに渡されます。 パラメーターの値を指定するには、SQLServerPreparedStatement クラスの setter メソッドの 1 つを使用できます。 使用する setter メソッドは、SQL ステートメントに渡す値のデータ型によって決定されます。

setter メソッドに値を渡す場合は、SQL ステートメントで使用する実際の値だけでなく、SQL ステートメント内のパラメータの順序も指定する必要があります。 たとえば、SQL ステートメントにパラメーターが 1 つ存在する場合、その序数値は 1 になります。 ステートメントに 2 つのパラメーターが含まれている場合、1 つ目の序数値は 1 に、2 つ目の序数値は 2 になります。

次の例の関数は、AdventureWorks2022 サンプル データベースに対して開かれた接続を渡され、準備された SQL ステートメントを作成し、1 つの String パラメーター値を指定して実行した後、その結果を結果セットから読み取ります。

public static void executeStatement(Connection con) {
    try(PreparedStatement pstmt = con.prepareStatement("SELECT LastName, FirstName FROM Person.Contact WHERE LastName = ?");) {
        pstmt.setString(1, "Smith");
        ResultSet rs = pstmt.executeQuery();

        while (rs.next()) {
            System.out.println(rs.getString("LastName") + ", " + rs.getString("FirstName"));
        }
    }
    // Handle any errors that may have occurred.
    catch (SQLException e) {
        e.printStackTrace();
    }
}

関連項目

SQL でのステートメントの使用