最近一直用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; } }