nutz 自定义查询 分页 取值
开始一直纠结,如果都有构建一个Bean对象的话,岂不是很麻烦。就发现可以直接用 list<map> 讲查询结构以键值对的形式取出来。这样就方便了。使用方法如下。
1.先获取查询结构总数。
/* getPersonSum.data */ select count(user_id) sums from t_user_info
Sql sql = dao.sqls().create("getPersonSum.data"); sql.setCallback(new SqlCallback() { public Object invoke(Connection conn, ResultSet rs, Sql sql) throws SQLException { int sums = 0; while (rs.next()){ sums = rs.getInt("sums"); } return sums; } }); dao.execute(sql); int sum = sql.getInt();
2.获取到总数以后,再设置Pager对象。以下参数都得设置。最后取出来就可以继续做逻辑了。
Sql sql = dao.sqls().create("testPerson.data");
Pager pager = dao.createPager(1, 10); // 起始页,每页数目 pager.setRecordCount(sum);// 设置记录总数 sql.setPager(pager); sql.setCallback(Sqls.callback.records()); // 设置回调 dao.execute(sql); System.out.println(Json.toJson(sql.getList(Map.class)));