共用方式為


搭配參數使用 SQL 語句

下載 JDBC 驅動程式

若要使用包含 IN 參數的 SQL 語句來處理 SQL Server 資料庫中的數據,您可以使用 SQLServerPreparedStatement 類別的 executeQuery 方法,傳回將包含所要求數據的 SQLServerResultSet。 若要這樣做,您必須先使用 SQLServerConnection 類別的 prepareStatement 方法建立 SQLServerPreparedStatement 物件。

當建構 SQL 陳述式時,請使用 ? (問號) 字元來指定 IN 參數,這個問號是作為預留位置,代表稍後將傳遞至 SQL 陳述式的參數值。 若要指定參數的值,您可以使用 SQLServerPreparedStatement 類別的其中一個 setter 方法。 您使用的 setter 方法,是由要傳遞至 SQL 陳述式的值資料類型所決定。

當您將值傳遞至 setter 方法時,您不但要指定用於 SQL 陳述式的實際值,也要指定 SQL 陳述式中參數的序數位置。 例如,當您的 SQL 陳述式包含單一參數時,其序數值將會是 1。 如果陳述式包含兩個參數,則第一個序數值為 1,而第二個序數值會是 2。

在下列範例中,AdventureWorks2022 範例資料庫的開啟連接會傳入函式、建構並執行具有單一 String 參數值的 SQL 備妥語句,然後從結果集讀取結果。

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 陳述式