首页 > 编程学习 > Nutz:自定义SQL多表多字段分页查询方法
2013十二月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);
       }

2,541 total views, 1 views today

本文地址:https://blog.wizzer.cn/archives/2807 , 转载请保留.

本文目前尚无任何评论.

发表评论