根据请求参数实现条件分支
应用场景
有时我们需要根据不同的请求参数来组装SQL的不同条件语句,例如当请求参数传入了年龄参数就需要获取符合年龄条件的
人员,如果请求未传入年龄参数则不需要根据年龄过滤数据,此类场景在一条SQL查询语句中显然无法实现。
此时便需要我们使用执行提供器配置方式(provider配置)来完成复杂的SQL条件分支实现。
provider
provider配置采用JavaScript实现,定义了provider意味着微服务接口接下来的执行脚本(包括total与exec)由provider定义的JavaScript返回。
只返回exec执行脚本
provider返回格式可以是简单的字符串,返回的字符串直接用于exec执行,如下所示:
provider = <<SQL
(function(){
return "SELECT * FROM ..."
})()
SQL
同时返回total与exec
provider可以返回用于分页查询接口的total与exec脚本,如下所示:
provider = <<SQL
(function(){
return {
total: "SELECT count(*) FROM ...",
exec: "SELECT * FROM ... OFFSET :offset LIMIT :limit"
}
})()
SQL
同时返回脚本类型
provider = <<SQL
(function(){
return {
total: "SELECT count(*) FROM ...",
exec: "SELECT * FROM ... OFFSET :offset LIMIT :limit",
impl: "sql"
}
})()
SQL
total可以不存在于返回结果中,存在则表示实现分页查询接口impl可以是js(表示JavaScript脚本)、cmd(表示SHELL脚本命令)。