MySQL參數化查詢是通過使用預處理語句來實現的。預處理語句是一種在服務器上準備和編譯的SQL語句模板,其中的參數使用占位符代替。在執行時,將實際的參數值綁定到占位符上,然后執行預處理語句。
下面是一個使用參數化查詢的示例:
// 創建預處理語句模板
String query = "SELECT * FROM users WHERE id = ?";
PreparedStatement statement = connection.prepareStatement(query);
// 綁定參數值
int userId = 1;
statement.setInt(1, userId);
// 執行查詢
ResultSet resultSet = statement.executeQuery();
// 處理結果集
while (resultSet.next()) {
int id = resultSet.getInt("id");
String username = resultSet.getString("username");
System.out.println("ID: " + id + ", Username: " + username);
}
// 關閉連接和語句
resultSet.close();
statement.close();
在上述示例中,首先創建了一個預處理語句模板,其中使用了一個占位符 ?
來表示參數。然后,使用 setXX()
方法將實際的參數值綁定到占位符上,其中 XX
表示參數的類型。最后,執行預處理語句并處理結果集。
通過使用參數化查詢,可以有效地防止SQL注入攻擊,同時提高查詢的性能,因為預處理語句只需要編譯一次,然后可以多次執行。