DBAPI作为一款后端低代码接口快速开发工具,不仅能实现简单的字段传参给SQL,也可以实现复杂的JSON传参。下面我们就来看一个实际的例子。
{
"province": {
"name": "广东",
"cities": [{
"name": "深圳",
"code": "518000"
}, {
"name": "广州",
"code": "510000"
}
]
}
}
注意在基本信息的Content Type
中一定要选择application/json
,然后将json参数填入其中。
在执行器中选择刚才创建的数据源,并填写sql,注意sql中的参数我们这样获取:
#{province.cities[0].name} #{province.cities[1].name}
有同学又问了,如果json参数中的cities数组不是2个元素,是3个元素怎么办呢?那SQL不就只能接收2个参数了吗?能否根据参数数组中的个数自动接收参数呢?
当然可以!那就要用到类似Mybatis的动态SQL语法了!我们修改API,修改SQL为以下内容,然后保存并发布API。
select * from gdp where city in
<foreach open="(" close=")" collection="province.cities" separator="," item="city" index="index">
#{city.name}
</foreach>
那么这一段动态SQL如何解释呢
collection="province.cities"
表示将province.cities
取出来,它是一个数组,对这个数组进行循环遍历
item="city"
表示循环遍历的时候对每个元素进行命名为city
所以最后取值的时候用#{city.name}
来取值
不熟悉的同学可以学习下mybatis动态SQL语法喔!