Delen via


Een SQL-instructie gebruiken met parameters

JDBC-stuurprogramma downloaden

Als u wilt werken met gegevens in een SQL Server-database met behulp van een SQL-instructie die IN-parameters bevat, kunt u de methode executeQuery van de klasse SQLServerPreparedStatement gebruiken. Deze klasse retourneert een SQLServerResultSet die de aangevraagde gegevens bevat. Maak eerst een SQLServerPreparedStatement-object met behulp van de prepareStatement-methode van de klasse SQLServerConnection .

Wanneer u uw SQL-instructie maakt, worden de IN-parameters opgegeven met behulp van het ? teken (vraagteken), dat fungeert als een tijdelijke aanduiding voor de parameterwaarden die worden doorgegeven aan de SQL-instructie. Als u een waarde voor een parameter wilt opgeven, gebruikt u een van de settermethoden van de klasse SQLServerPreparedStatement. Het gegevenstype van de waarde die u in de SQL-instructie doorgeeft, bepaalt de settermethode die u gebruikt.

Wanneer u een waarde doorgeeft aan de settermethode, moet u niet alleen de werkelijke waarde opgeven die moet worden gebruikt in de SQL-instructie, maar ook de rangschikking van de parameter in de SQL-instructie. Als uw SQL-instructie bijvoorbeeld één parameter bevat, is de rangtelwaarde 1. Als de instructie twee parameters bevat, is de eerste rangtelwaarde 1, terwijl de tweede rangwaarde 2 is.

In het volgende voorbeeld wordt een open verbinding met de voorbeelddatabase AdventureWorks2025 doorgegeven aan de functie. Vervolgens wordt een voorbereide SQL-instructie samengesteld en uitgevoerd met één tekenreeksparameterwaarde. Vervolgens worden de resultaten gelezen uit de resultatenset.

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

Zie ook

Gebruik van instructies met SQLPrestaties van parameters in voorbereide SQL-instructies