本人纯自学笔记,不喜勿喷,欢迎加我简介群一起自学
标签
动态sql语句需要靠一些标签实现
首先:
使用where和if标签实现动态sql
where标签相当于sql语句中的where关键字,在where标签内的if标签会享受where标签自动删除条件中位于前面的多余的and
id标签中test是条件,如果判断结果正确,会将内容拼接至前面语句后
例如,当我传一个id值后
当我传入2个值后
这里就暴露了一个问题就是where标签只能去除前面多余的and,所以可以使
用trim标签来增强实用性
prefix表示要给trim标签内的sql语句整体添加什么前缀,suffix是为整体添加后缀,prefixOverrides是去除哪些多余的前缀 ,suffixOverrides是去哪些多余的后缀
例如:
当我们传入多个参数时,想要在sql中遍历出参数就需要使用foreach标签
collection是要遍历的数据集名 closr是在语句结束时添加什么后缀
index是如果有索引存在时索引位置,item是每次循环的值,open是在语句开头添加什么前缀,separator是每个变量中间的间隔符
例如
我在接口类中定义一个list集合接收数据集并用param注解把他名字改为its
结果
choose标签,选择标签,功能相当于switch…case语句
set标签会在你写update中的sql语句时,代替set关键字,还可以去除他包含sql语句中多余的逗号
include 标签,抽取可重用sql
bind标签 定义一个变量
注意
test内的语句是OGNL表达式