首页 > 编程学习 > Nutz:自定义SQL多表多字段分页查询方法
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 jsonobj = new HashMap();
            jsonobj.put("total", pager.getRecordCount());
            jsonobj.put("rows", sql.getList(Map.class));
            return Json.toJson(jsonobj);
       }

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

本文目前尚无任何评论.

发表评论