类com.github.pagehelper.PageRowBounds源码实例Demo

下面列出了怎么用com.github.pagehelper.PageRowBounds的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: mybatis-dynamic-query   文件: DynamicMapperTest.java
@Test
public void testSelectRowBoundsByDynamicQuery() {
    DynamicQuery<User> dynamicQuery = new DynamicQuery<>(User.class);
    dynamicQuery.setDistinct(true);
    FilterDescriptor idFilter =
            new FilterDescriptor("id", FilterOperator.LESS_THAN, 100);
    dynamicQuery.addFilters(idFilter);

    SortDescriptor idSort =
            new SortDescriptor(User::getId, SortDirection.DESC);
    dynamicQuery.addSorts(idSort);

    PageRowBounds pageRowBounds = new PageRowBounds(1, 2);
    List<User> users = userDao.selectRowBoundsByDynamicQuery(dynamicQuery, pageRowBounds);
    assertEquals(true, users.size() > 0);
}
 
源代码2 项目: cjs_ssms   文件: SelectController.java
/**
 * 数据表grid查询 It's not good enough
 * @param pageIndex
 * @param pageSize
 * @param paramsMap 给criteria添加参数使用
 * @return
 */
private Map<String, Object> getGrids(int pageIndex, int pageSize, HashMap<String, String> paramsMap) {
  PageRowBounds rowBounds = new PageRowBounds(pageIndex+1, pageSize);
  SqlSession sqlSession = MybatisHelper.getSqlSession();
  Mapper mapper = (Mapper) sqlSession.getMapper(UUserMapper.class);
  Example example = new Example(UUser.class);
  Example.Criteria criteria = example.createCriteria();
  /*criteria增加条件...*/
  List<UUser> users = (List<UUser>) mapper.selectByExampleAndRowBounds(example, rowBounds);

  /*4.构造适合miniui_grid展示的map*/
  Map<String, Object> map_grid = new HashedMap();
  map_grid.put("total", users.size());
  map_grid.put("data", users);

  return map_grid;
}
 
源代码3 项目: Mybatis-PageHelper   文件: PageRowBoundsTest.java
/**
 * 使用Mapper接口调用时,使用PageHelper.startPage效果更好,不需要添加Mapper接口参数
 */
@Test
public void testWithRowboundsAndCountTrue() {
    SqlSession sqlSession = RowBoundsHelper.getSqlSession();
    UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
    try {
        //limit=0,这时候相当于用分页插件求count,但是前提必须是配置rounbounds方式求count,否则都是-1
        //这里由于没有配置,应该都是-1
        PageRowBounds pageRowBounds = new PageRowBounds(0, -1);
        List<User> list = userMapper.selectAll(pageRowBounds);
        assertEquals(183, list.size());

        //pageSize<0的时候同上
        list = userMapper.selectAll(new PageRowBounds(0, -100));
        assertEquals(183, list.size());
    } finally {
        sqlSession.close();
    }
}
 
源代码4 项目: cjs_ssms   文件: SelectServiceImpl.java
@Override
public Map<String, Object> queryGridKey(int pageNum, int pageSize,
                                        String field, String sort,
                                        HashMap<String, String> params)
    throws ClassNotFoundException, IllegalAccessException,
    InstantiationException, NoSuchMethodException, InvocationTargetException {

  String[] strs = params.get("key").split("_"); /*1.strs[0]:接口, strs[1]:方法*/
  SqlSession sqlSession = MybatisHelper.getSqlSession(); /*2.sqlSession*/
  PageRowBounds rowBounds = new PageRowBounds(pageNum, pageSize); /*3.rowBounds*/

  /*
  0 = {[email protected]} "rolename" -> "0001"
  1 = {[email protected]} "key" -> "UUserMapper_gridUsers"
  2 = {[email protected]} "username" -> "0001"
  * */

  /*1.Mapper*/
  Class mapper_clz = Class.forName(MAPPER + strs[0]);
  Mapper mapper = (Mapper) sqlSession.getMapper(mapper_clz);

  /*2.Page分页操作*/
  // List<Object> list = pagePojo(params, strs, mapper, pageNum, pageSize); // pojo
  List<Object> list = pageMap(params, strs, mapper, pageNum, pageSize); // map
  PageInfo page = new PageInfo(list);

  /*4.构造适合miniui_grid展示的map*/
  Map<String, Object> map_grid = new HashedMap();
  map_grid.put("total", page.getTotal());
  map_grid.put("data", list);

  return map_grid;
}
 
@Override
public boolean beforeCount(MappedStatement ms, Object parameterObject, RowBounds rowBounds) {
    if(rowBounds instanceof PageRowBounds){
        PageRowBounds pageRowBounds = (PageRowBounds)rowBounds;
        return pageRowBounds.getCount() == null || pageRowBounds.getCount();
    }
    return false;
}
 
@Override
public boolean afterCount(long count, Object parameterObject, RowBounds rowBounds) {
    Page page = getLocalPage();
    page.setTotal(count);
    if (rowBounds instanceof PageRowBounds) {
        ((PageRowBounds) rowBounds).setTotal(count);
    }
    //pageSize < 0 的时候,不执行分页查询
    //pageSize = 0 的时候,还需要执行后续查询,但是不会分页
    if (page.getPageSize() < 0) {
        return false;
    }
    return count > ((page.getPageNum() - 1) * page.getPageSize());
}
 
@Override
public boolean afterCount(long count, Object parameterObject, RowBounds rowBounds) {
    //由于 beforeCount 校验,这里一定是 PageRowBounds
    ((PageRowBounds) rowBounds).setTotal(count);
    return count > 0;
}