Db.paginate 分页用sql分离,没有参数,怎么用db.getsql?

Db.paginate 分页用sql分离,没有参数,怎么用db.getsql?JMap.create(key,param) 这个value没有怎么传,能传Null吗?传null,eclipse报错

评论区

面包小馒头

2017-02-03 15:07

楼主好,我也用到了这个功能,以下是我的方式,不知能否解决你的需求,
```

###用于分页的搜索参数 TODO:如果是模糊查找或者区间查找该怎么做呢?
#sql("paginateQuery")
#setLocal(paraCount = 0)
#for(para : paraMap)
#if(para.value[0])
#if(paraCount == 0)
#setLocal(paraCount = 1)
where #(para.key) = "#(para.value[0])"
#else
and #(para.key) = "#(para.value[0])"
#end
#end
#else
where 1
#end
#end

//在控制器中先获取到查询参数
Map paraMap = getParaMap();

//在模型中调用分页
JMap queryPara = JMap.create("paraMap", paraMap);
String queryParaStr = getSql("paginateQuery", queryPara);
return paginate(pageNumber, pageSize, "select *", "from user "+queryParaStr+" order by id asc");

```

JFinal

2017-02-03 21:58

paginate 方法,如果没有参数,不传就好,因为 paginate 方法本身就支持无 para,例如:
paginate(1, 10, "select * ", "from xxx where...")

此外,如果 select 部分与 from 部分都放模板中的话,定义两个 sql 就好,例如:
#sql("userPaginateSelect")
select userName, email
#end
#sql("userPaginateFrom")
from user where ...
#end

老兵

2018-08-11 10:43

String strSql = Db.getSql("findAllRecord");
SqlPara sql = new SqlPara();
sql.setSql(strSql);
Page accounts = Db.paginate(1, 10, sql);

热门反馈

扫码入社