使用包含参数的 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。

在以下示例中,将已打开的 AdventureWorks2025 示例数据库连接传递给函数,构造并运行一个具有单个字符串参数值的 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 语句