sql动态生成,其中一段话怎么理解?

QQ图片20170127094152.png

,#(statusOk)是 jfinal 模板引擎的一个输出指令,在生成 sql 时会从传入的 map

参数容器中取出名为 statusOk 的变量并输出该值进行 sql 拼装

这话段中,map是从哪来?是指condMap吗?还是说在调用时,传入一个statusOk的变量?具体怎么用呢?


评论区

JFinal

2017-01-27 09:48

Model.getSqlPara(...) 与 Db.getSqlPara(...) 都需要传入一个 Map 参数,就是指这个参数,例如:
JMap map = JMap.create("statusOk", true).set("condMap", JMap.create(...));
SqlPara sp = Db.getSqlPara("find", map);
Db.find(sp);

JFinal

2017-01-27 09:48

先将 template engine 用起来,这里就自然明白了

lyq027

2017-01-27 09:54

@JFinal 好,谢谢,另外,分页怎么使用sql分离呢

lyq027

2017-01-27 09:56

另外Ret跟JMap有啥区别吗?看了里面好像都差不多,是一个用做返回,一个用sql参数使用吗

lyq027

2017-01-27 09:58

分页使用是只能自已写sql分页用limit这样,再调用是么

JFinal

2017-01-27 09:58

@lyq027 定义两个 sql 片段,例如:
#sql("blogPageSelect")
select a, b, c
#end

#sql("blogPageCond")
from ....
#end

用的时候:
SqlPara sp = getSqlPara("blogPageCond", ....);
pagiate(getSql("blogPageSelect"), sp.getSql(), sp.getPara());

JFinal

2017-01-27 10:00

Ret JMap 基本一样,只是名字不同,Ret 是 return value 的缩写,JMap 是 JFinal Map 的缩写,用的时候一般返回值用 Ret,传参用 JMap

lyq027

2017-01-27 10:09

好,谢谢@JFinal

JFinal

2017-01-27 10:12

@lyq027 另外注意一点,jfinal template engine 传的 Map 参数可以是任意的 Map,不仅仅限于 JMap,JMap 只是 HashMap 的子类而已

热门反馈

扫码入社