数据开发治理平台 WeData 脚本模式高级 SQL 使用指引

数据服务支持通过脚本模式来生成 API,脚本模式下支持基础 SQL 和高级 SQL,其中高级 SQL 涵盖了 Mybatis 语法的常见标签类型:if、choose、when、otherwise、trim、foreach、where,可以以借助标签语法来灵活实现空值校验、多值遍历、动态查表、动态排序及聚合等复杂查询逻辑。

相关产品
数据开发治理平台 WeData 产品页,含版本规格、价格与购买入口。

一、高级 SQL(Mybatis 语法)示例

同时,高级 SQL 兼容部分 Mybatis 语法,故在使用 mybatis 语法时,注意 "$" 和 “#”符号的使用。这里说明常见场景的代码示例。

二、基础 SQL 示例:

selectcountry, //select字段为API的返回字段name as username, //当存在字段别名时,别名作为返回字段max(age) as max_age //支持数据库函数from db_name.table_name //需要查询的库表wherehobby=#{hobby} //hobby对应API请求参数,格式是#{请求参数}group by country,name

注意:说明:

注意:1. 请参考示例规范输入 SQL,输入完成后, SQL 会自己解析为 API 请求响应参数。

注意:2. 参数完成解析后,请不全参数相关定义,以便生成完整的 API 文档给调用方使用。

注意:3. SQL 支持多表连接,编写时,请注意所选择数据库的语法。

三、示例1:通过条件控制返回结果按照不同的表字段进行排序

SELECT col_a AS col_a, col_b AS col_b, col_c AS col_cFROM db_name.table_name<choose> <when test='var == 1'> ORDER BY col_a </when> <when test='var == 2'> ORDER BY col_b </when> <when test='var == 3'> ORDER BY col_a, col_c </when> <when test='var == 4'> ORDER BY col_c, col_a </when></choose>

请求参数:

参数名 参数类型 参数位置 操作符 是否必填 默认值 示例值 描述
var String Query = 是 1 1 排序参数

返回参数:

参数名 绑定字段 参数类型 示例值 描述
col_a col_a String abc 字段 a
col_b col_b String abc 字段 b
col_c col_c String abc 字段 c

四、示例2:通过条件控制查询不同的数据表

select col_a as col_a,col_b as col_b,col_c as col_c from <choose> <when test='var == 1'> db_name.table_name_01 </when> <when test='var == 2'> db_name.table_name_02 </when></choose>

请求参数:

参数名 参数类型 参数位置 操作符 是否必填 默认值 示例值 描述
var String Query = 是 1 1 查询表参数: 1、db_name.table_name_012、db_name.table_name_02

返回参数:

参数名 绑定字段 参数类型 示例值 描述
col_a col_a String abc 字段 a
col_b col_b String abc 字段 b
col_c col_c String abc 字段 c

五、示例3:通过判断字段值是否为空来控制 where 查询条件是否保留,即:当请求参数非必填时的查询逻辑

select col_a as col_a,col_b as col_b,col_c as col_cfrom db_name.table_name_01<where> <if test='list!=null'> col_a in <foreach collection="list" open="(" close=")" separator="," item="col_a_item"> #{col_a_item} </foreach> </if></where>

请求参数:

参数名 参数类型 参数位置 操作符 是否必填 默认值 示例值 描述
list StringList Query = 否 a,b,c a,b,c col_a 入参集合

响应参数:

参数名 绑定字段 参数类型 示例值 描述
col_a col_a String abc 字段 a
col_b col_b String abc 字段 b
col_c col_c String abc 字段 c

六、特殊字段需转义处理

mybatis 中 SQL 写在 xml 文件中,而 xml 解析 < 、>、<=、>= 时会出错,这时应该使用转义写法。

< <= > >= & ' "
&lt; &lt;= &gt; &gt;= &amp; &apos; &quot;
赞 (0)
上一篇 5天前
下一篇 5天前