Sdílet prostřednictvím


Použití příkazu SQL s parametry

Stáhnout ovladač JDBC

Pokud chcete pracovat s daty v databázi SQL Serveru pomocí příkazu SQL, který obsahuje parametry IN, můžete použít metodu executeQuery třídy SQLServerPreparedStatement k vrácení SQLServerResultSet , která bude obsahovat požadovaná data. Chcete-li to provést, musíte nejprve vytvořit SQLServerPreparedStatement objekt pomocí prepareStatement metody SQLServerConnection třídy.

Při vytváření příkazu SQL se parametry IN zadají pomocí příkazu ? (otazník), který funguje jako zástupný symbol pro hodnoty parametrů, které se později předají do příkazu SQL. Chcete-li zadat hodnotu parametru, můžete použít jednu z metod setter sqlServerPreparedStatement třídy. Metoda setter, kterou používáte, je určena datovým typem hodnoty, kterou chcete předat do příkazu SQL.

Když předáte hodnotu metodě setter, musíte zadat nejen skutečnou hodnotu, která se má použít v příkazu SQL, ale také pořadové umístění parametru v příkazu SQL. Pokud například příkaz SQL obsahuje jeden parametr, jeho pořadová hodnota bude 1. Pokud příkaz obsahuje dva parametry, první pořadová hodnota bude 1, zatímco druhá pořadová hodnota bude 2.

V následujícím příkladu se do funkce předá otevřené připojení k ukázkové databázi AdventureWorks2025, vytvoří se připravený příkaz SQL a spustí se s jednou hodnotou parametru String a výsledky se načtou ze sady výsledků.

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();
    }
}

Viz také

Použití příkazů s SQL