#sql("find") select * from report re #for(x : cond) #(for.index == 0? "where" : "and") #if(x.key=="title") re.title like concat('%',#para(x.value), '%') #else #(x.key) #para(x.value) #end #if(x.key=="type") re.type like concat('%',#para(x.value), '%') #else #(x.key) #para(x.value) #end #if(x.key=="author") re.author like concat('%',#para(x.value), '%') #else #(x.key) #para(x.value) #end #if(x.key=="content") re.content like concat('%',#para(x.value), '%') #else #(x.key) #para(x.value) #end #end #end
sql模板就这样,然后就是调用
public void find() { Record r = getArgsRecord(); HashMap<String, String> cond = new HashMap<String, String>(); if (StrKit.notBlank(r.getStr("title"))) { cond.put("title",r.getStr("title")); } if (StrKit.notBlank(r.getStr("type"))) { cond.put("type",r.getStr("type")); } if (StrKit.notBlank(r.getStr("author"))) { cond.put("author",r.getStr("author")); } if (StrKit.notBlank(r.getStr("content"))) { cond.put("content",r.getStr("content")); } List<Record> list = Db.template("find", cond).find(); System.out.println(list); renderJson(list); }
然后就是只执行一句sql查询所有,按条件模糊查询的话,一直查出来所有,代码哪里有问题吗,大佬,帮忙看一下
项目:JFinal