Skip to main content

Module query

Module query 

Source
Expand description

查询构造器

提供类似 ThinkORM 的链式查询构造 API

§P0-1 软删除集成(v1.3.0+)

M: Model 实现了 soft_delete_field() 返回 Some(field) 时, QueryBuilder 会在以下场景自动追加 WHERE {field} IS NULL

  • build_select / build_select_with_params
  • build_count / build_exists / build_max / build_min / build_sum / build_avg
  • build_update / build_update_with_params(防止更新已删除记录)
  • build_delete / build_delete_with_params(自动转为 UPDATE SET {field} = NOW()

使用 without_soft_delete() 可临时禁用软删除过滤(用于查询已删除记录)。

§P0-2 参数化 WHERE 条件(v1.3.0+)

新增类型安全的参数化 WHERE API:

  • where_eq(field, value) / where_ne / where_gt / where_ge / where_lt / where_le
  • where_like(field, pattern)

这些方法使用 ? 占位符 + Value 绑定,杜绝 SQL 注入。 原有 where_cond(condition: impl Into<String>) 因字符串拼接存在注入风险, 保留以兼容复杂表达式(如 age > 18 AND status = 'active'),但文档标记为不推荐。

Structs§

QueryBuilder
用于构造 SQL 查询的查询构造器