nutzDao 查詢封裝多表關聯查詢返回數據的方法

最近一直用nutzDao  可以實現基本需求,但是多表查詢就需要自己動手寫sql啦
手動寫的多表關聯查詢分頁的實現,直接代碼走起


public PagerResult collectDataList(int pageNum, int pageSize, int type, String userId) {

        StringBuffer stringBuffer=new StringBuffer();
        stringBuffer.append(" from catalog_statistics i, catalog_app_favorites f where 1=1 and f.data_id=i.catalog_pk and f.status=0");
        stringBuffer.append(" and f.type='"+type+"' ");


        stringBuffer.append(" order by f.create_time desc");
        String sqlList="select i.catalog_name,i.dept_name,dept_name_abb,i.category_name,i.catalog_abstract,i.publish_time,i.is_json,i.is_excel,i.is_csv,f.* "+stringBuffer.toString();
        String sqlCount="select count(*)"+stringBuffer.toString();
        Sql sqls = Sqls.create(sqlList.toString());
        Pager pager = new Pager(pageNum, pageSize);
        Sql countSqls = Sqls.create(sqlCount);
        countSqls.setCallback(Sqls.callback.integer());
        nutzDao.execute(countSqls);
        pager.setRecordCount(countSqls.getInt());
        sqls.setCallback(Sqls.callback.records());
        sqls.setPager(pager);
        nutzDao.execute(sqls);
        pager.setPageSize(pageSize);
        pager.setPageNumber(pageNum);
        PagerResult pagerResult = new PagerResult();
        pagerResult.setList(sqls.getList(Record.class));
        pagerResult.setPager(pager);
        return pagerResult;
}

PagerResult  類分裝返回對象,繼承QueryResult  

public class PagerResult extends QueryResult {
    public PagerResult() {
        super();
        // TODO Auto-generated constructor stub
    }

    public PagerResult(List<?> list, Pager pager) {
        super(list, pager);
        // TODO Auto-generated constructor stub
    }
}

QueryResult   類分裝

public class QueryResult implements Serializable {
        private static final long serialVersionUID = 5104522523949248573L;
        private List<?> list;
        private Pager pager;

        public QueryResult() {
        }

        public QueryResult(List<?> list, Pager pager) {
                this.list = list;
                this.pager = pager;
        }

        public List<?> getList() {
                return this.list;
        }

        public <T> List<T> getList(Class<T> eleType) {
                return this.list;
        }

        public <T> List<T> convertList(Class<T> eleType) {
                if (null != this.list && !this.list.isEmpty()) {
                        List<T> re = new ArrayList(this.list.size());
                        Castors castors = Castors.me();
                        Iterator var4 = this.list.iterator();

                        while(var4.hasNext()) {
                                Object obj = var4.next();
                                re.add(castors.castTo(obj, eleType));
                        }

                        return re;
                } else {
                        return this.list;
                }
        }

        public QueryResult setList(List<?> list) {
                this.list = list;
                return this;
        }

        public Pager getPager() {
                return this.pager;
        }

        public QueryResult setPager(Pager pager) {
                this.pager = pager;
                return this;
        }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章