根据请求参数实现条件分支
应用场景
有时我们需要根据不同的请求参数来组装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脚本命令)。