1.概述
自定义SQL功能是用户可以在线配置SQL,方便用户做数据查询,自定义SQL 有三种模式:
- 选择表或视图
- Freemarker Sql
- Groovy Sql
其中1直接配置就好了,2,3 是需要直接写SQL的,需要有些注意的点。下面就介绍一下两种模式的如何去写。
2.写法说明
2.1 FREEMARK SQL
freemark 意思就是这个SQL的语法支持FRAMRK的语法。
2.1.1 常量使用
常量是在后端计算的,比如 [USERID]
,在SQL执行之前的时候,会被先替换成 当前用户ID。
2.2.2 参数变量
在编写的时候SQL的时候,我们可以配置传入参数。
在编写SQL的时候,如果参数是ID_,那么可以如下写法。
select * from form_pc where 1=1
<#if ID_?? >
and ID_='${ID_}'
</#if>
2.2.3 上下文变量
平台提供了三个上下文常量,分别是 当前用户ID,当前部门ID,当前租户ID。
2.2 groovy sql
这个就是使用java代码来拼装SQL语句,可以方便用户构建复杂的SQL语句。
用于查询的SQL为
2.2.1 上下文变量
在这里有一个上下文变量,变量名 为 params
,这个变量是用来存储传过来的参数。
比如我们在条件字段定义。
在拼装时可以使用如下代码进行拼装。
- 直接平装sql
import com.redxun.common.tool.StringUtils;
String sql="select * from form_pc where 1=1 ";
if(StringUtils.isNotEmpty(params.ID_)){
sql+=" and ID_='"+params.ID_+ "'";
}
return sql;
- 使用参数化方式拼装
import com.redxun.common.tool.StringUtils;
String sql="select * from form_pc where 1=1 ";
if(StringUtils.isNotEmpty(params.ID_)){
sql+=" and ID_=#{w.ID_}";
}
return sql;
参数写法 : w.参数
这种拼装方式,安全,并且执行效率高。
在编写SQL的时候,可以参考下面的文档。
http://doc.redxun.cn/docs/jpaas/utilTool
2.2.2 常量使用
常量是在后端计算的,比如 [USERID]
,在SQL执行之前的时候,会被先替换成 当前用户ID。
文档更新时间: 2022-01-24 18:02 作者:zyg