Sql模板能否嵌套?

写sql的时候会有一部分判断语句是重复的,例如

................

#if(date1!=null && date1!='') and cr.date>#para(date1) #end

#if(date2!=null && date2!='') and cr.date<#para(date2) #end

...................

#if(date1!=null && date1!='') and cr.date>#para(date1) #end

#if(date2!=null && date2!='') and cr.date<#para(date2) #end

.....................

能否把这个重复的判断语句封装成一个模板,当使用的时候就嵌套到对应的位置,这样以后维护会方便一些


评论区

JFinal

2020-02-28 12:40

sql 模板里头很多方式去实现,例如你可以用 template function 来实现,先定义一个模板函数:
#define myFunc()
#if(date1!=null && date1!='') and cr.date>#para(date1) #end
#if(date2!=null && date2!='') and cr.date<#para(date2) #end
#end

用的时候调用一下即可:
#@myFunc()

还可以为函数传参,不传参的话也是直接与变量作用域打通的,极度方便

djinquan

2020-02-28 15:57

@JFinal 没错,就是要这个效果,谢谢啊

热门反馈

扫码入社