作者:陈剑冬  历史版本:1  最后编辑:陈剑冬  更新时间:2024-10-16 14:26

配置页面

高级接口只有一个SQL脚本,SQL脚本接口的配置页面的服务配置模块与基础接口不同,是一个SQL编辑器和参数列表。

服务配置

SQL编辑器

  1. 插入参数:插入用户自定义参数,在右侧参数列表。

  2. 插入where标签:主要用来简化 SQL 语句中的条件判断,可以自动处理 AND/OR 条件。

    <where>
     <if test="判断条件">
         AND/OR ...
     </if>
    </where>
    • if 语句中判断条件为 true 时,where 关键字才会加入到组装的 SQL 里面,否则就不加入。
    • where 会检索语句,它会将 where 后的第一个 SQL 条件语句的 AND 或者 OR 关键词去掉。
  3. 插入if标签:单个条件判断,用以实现条件筛选。

    <if test="判断条件">
     SQL语句
    </if>
  4. 插入foreach标签:用于更新或保存数据时的批量操作。
    有六个属性:item,index,collection,open, close,separator。
    trim 一般用于去除 SQL 语句中多余的 AND 关键字、逗号,或者给 SQL 语句前拼接 where、set 等后缀,可用于选择性插入、更新、删除或者条件查询等操作。trim 语法格式如下。

    <foreach collection="idList"  open="(" separator="," close=")" item="item">
    #{item}
    </foreach>
属性 作用
item 表示集合中每一个元素进行迭代时的别名
index 指定一个名字,表示在迭代过程中每次迭代到的位置
collection 表示该语句以什么开始(既然是 in 条件语句,所以必然以’(‘开始)
open 表示该语句以什么结束(既然是 in 条件语句,所以必然以’)’结束。
close 表示在每次进行迭代之间以什么符号作为分隔符(既然是 in 条件语句,所以必然以‘,’作为分隔符)。
separator 该属性是必选的,但在不同情况下该属性的值是不一样的,主要有以下 3 种情况:如果传入的是单参数且参数类型是一个 List,collection 属性值为 list。 如果传入的是单参数且参数类型是一个array 数组,collection 的属性值为 array。如果传入的参数是多个,需要把它们封装成一个 Map,当然单参数也可以封装成 Map。Map 的 key 是参数名,collection 属性值是传入的 List 或 array 对象在自己封装的 Map 中的 key。

参数列表

参数使用方法:
#{} 注入参数:作用和mybatis一致,都是将 #{} 区域替换为占位符 ?
${} 拼接参数:作用和mybatis一致,都是将 ${} 区域替换为对应的字符串

使用示例

无参数的联合查询

现有三张表sl_students、sl_score和sl_subject表,分别存放学生信息、学生成绩和科目,要求查询每个学生的各科目的成绩,并按照成绩倒序显示。

  • 选择数据服务,点击创建接口,点击【SQL脚本】,填写接口名称、编码和sql语句,选择测试环境,保存。

  • 编辑接口,进入【测试】页面,点击【测试】。

  • 在返回数据示例中查看查询数据

带参数的动态查询

现有一张mysql的sl_sjlx表,要求实现动态查询zfc=${zfc}的数据行。

  • 选择数据服务,点击创建接口,点击【SQL脚本】,填写接口名称、编码
    填写sql语句,在参数列表中添加一个字符串参数zfc,在sql中需要插入参数的位置点击【插入参数】,选择【字符串】即可。

  • 编辑接口,进入【测试】页面,在动态参数中填写值,点击【测试】。

  • 在返回数据示例中查看查询数据

动态标签

现有一张sl_students表,存放着学生信息,要求筛选出1班的所有学生信息。

  • 选择数据服务,点击创建接口,点击【SQL脚本】,填写接口名称、编码和sql语句,选择测试环境,保存。
    插入where和if的动态标签,当if标签中的条件scid != null成立时,scid = #{scid}才会加入到where子句中,转换成sql语句就是:select * from sl_students where scid = ?

  • 编辑接口,进入【测试】页面,在动态参数中填写值,点击【测试】。

  • 在返回数据示例中查看查询数据