Skip to main content

render_condition

Function render_condition 

Source
pub fn render_condition(
    template: &str,
    params: &HashMap<String, Value>,
) -> Option<String>
Expand description

渲染 WHERE 子句模板,将 :param_name 替换为实际值

  • :param_name → 替换为参数值的 SQL 字面量
  • 未知参数 → 返回 None(表示渲染失败)

§安全性

本函数使用 PostgreSQL 方言的转义规则(''')作为默认行为。 对 PostgreSQL/SQLite/Oracle/SQL Server 默认配置安全, 但对 MySQL 默认配置(backslash 是转义字符)不安全。 生产环境请使用 render_condition_with_dialect 以获得方言感知的转义。

§示例

use sz_orm_query::dynamic_filter::render_condition;
use sz_orm_model::Value;
use std::collections::HashMap;

let mut params = HashMap::new();
params.insert("status".to_string(), Value::String("active".to_string()));
params.insert("min_age".to_string(), Value::I64(18));

let rendered = render_condition("status = :status AND age >= :min_age", &params);
assert_eq!(rendered.unwrap(), "status = 'active' AND age >= 18");