使用 SQL 模板
将 SQL 看作一种特定的脚本语言,提供了执行手工编写的 SQL 语句的能力,适合复杂查询场景。
- 支持命名参数绑定,通过
:paramName的形式在 SQL 中指定占位符 - 参数通过
globalThis对象传递,键名与占位符名对应 - 对于 SELECT 查询:
- 如果有
LIMIT 1则返回单个对象 - 否则返回数组
- 如果有
- 对于 INSERT/UPDATE/DELETE 操作返回受影响的行数
- 支持与前置、后置 JavaScript/Python 脚本混合使用
注意: 不支持 Jinja 模板引擎语法
绑定查询参数
在 SQL 模板中,可以绑定命名参数,例如:
- API 请求参数:
:globalThis.input - 服务端保存的会话信息:
:globalThis.session - 环境变量
:globalThis.env
使用 . 点号访问对象字段,例如 API 请求的 json 格式是
{
"params": {
"user": {
"name": "luwak"
}
}
}
使用 :globalThis.input.user.name 绑定的值是 luwak。
SQL 模板最终将转换成包含占位符的预处理语句。