次の方法で共有


パラメーターでの 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 準備されたステートメントが構築され、単一の 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 でのステートメントの使用