Использование инструкции SQL с параметрами
Чтобы работать с данными в базе данных 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();
}
}