201312 月15
Nutz:自定义SQL多表多字段分页查询方法
easyui.datagrid 调用示例:
@At
@Ok("raw")
public String test(@Param("page") int curPage, @Param("rows") int pageSize){
Sql sql=Sqls.create("select a.name,b.loginname From sys_unit a,sys_user b where a.id=b.unitid");
return daoCtl.listPageJsonSql(dao, sql, curPage, pageSize);
}
源代码:
/**
* 根据自定义SQL分页,返回封装好的QueryResult对象
* @param dao
* @param sql
* @param curPage
* @param pageSize
* @return
*/
public QueryResult listPageSql(Dao dao, Sql sql, int curPage,int pageSize) {
Pager pager = dao.createPager(curPage, pageSize);
pager.setRecordCount(Daos.queryCount(dao, sql.getSourceSql()));// 记录数需手动设置
sql.setPager(pager);
sql.setCallback(Sqls.callback.records());
dao.execute(sql);
return new QueryResult(sql.getList(Map.class), pager);
}
/**
* 根据自定义SQL分页,返回封装好的 Easyui.datagrid JSON
* @param dao
* @param sql
* @param curPage
* @param pageSize
* @return
*/
public String listPageJsonSql(Dao dao, Sql sql, int curPage, int pageSize) {
Pager pager = dao.createPager(curPage, pageSize);
pager.setRecordCount(Daos.queryCount(dao, sql.toString()));// 记录数需手动设置
sql.setPager(pager);
sql.setCallback(Sqls.callback.records());
dao.execute(sql);
Map<String, Object> jsonobj = new HashMap<String, Object>();
jsonobj.put("total", pager.getRecordCount());
jsonobj.put("rows", sql.getList(Map.class));
return Json.toJson(jsonobj);
}
本文地址:https://wizzer.cn/archives/2807 , 转载请保留.