Использование инструкции SQL с параметрами

Скачать драйвер JDBC

Для работы с данными в базе данных SQL Server с использованием инструкции SQL, содержащей параметры IN, можно воспользоваться методом executeQuery класса SQLServerPreparedStatement для возврата результирующего набора SQLServerResultSet, который будет содержать запрошенные данные. Для этого сначала нужно создать объект SQLServerPreparedStatement с помощью метода prepareStatement класса SQLServerConnection.

При создании инструкции SQL параметры IN определяются с использованием «?» (вопросительного знака), действующего как заполнитель для значений параметров, которые позже будут переданы в инструкцию SQL. Чтобы указать значение для параметра, можно использовать один из методов задания из класса SQLServerPreparedStatement. Используемый метод задания определяется типом данных того значения, которое надо передать в инструкцию SQL.

Во время передачи значения методу задания следует указать не только фактическое значение, которое будет использоваться в инструкции SQL, но также порядковый номер параметра в инструкции SQL. Например, если инструкция SQL содержит единственный параметр, его порядковый номер будет 1. Если инструкция содержит два параметра, порядковый номер первого значения будет 1, а второго — 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