查询条件
最后更新:2024-09-10 08:19:53
|
状态:未完成
查询条件有在3种场合会出现,最终都为service.querys提供参数
-
querys()参数,也是一开始测试常用的,但不能生成复杂的条件
String name = getName();
service.querys("CRM_USER", "ID:1", "CODE:%2%","AGE:>=1", "++NAME:"+name, "TYPE_ID > 100 AND TYPE_ID < 200")
这里的参数可以写原生SQL,也可以column:value的格式分开
不同的是以:分隔的会生成占位符,如果是变量的话尽量这样生成,避免SQL注入
++表示这个条件必须有值,如果没有值整个SQL就不执行了
参考【query】
-
如果有web环境,经常通过request来直接构造查询条件,这样就不需要反复的取值、判断、赋值了
如果继承自AnylineController可以调用condition()方法返回一个ConfigStore
service.querys("CRM_USER", condition("ID:id"))
ID:id的意思是先从request中取出参数id的值 再与列ID合成查询条件:WHERE ID = ?(1)
一定注意与上一场景不同的是这里的id是一个request的变量而不是值
condition()提供了大量的格式,可以接收url,json中的各种格式的参数,
参考【约定格式】
-
对于更复杂的条件,或者低代码平台、自定义表单等场景中经常需要用到ConfigStore来构造查询条件
参考【ConfigStore】