Search in sources :

Example 31 with Country

use of com.github.pagehelper.model.Country in project Mybatis-PageHelper by pagehelper.

the class PageRowBoundsTest method testNamespaceWithPageRowBounds.

/**
     * 使用命名空间方式的RowBounds进行分页,使用RowBounds时不进行count查询
     * 通过修改代码可以进行count查询,没法通过其他方法改变参数
     * 因为如果通过调用一个别的方法来标记count查询,还不如直接startPage
     * <p/>
     * 同时使用startPage时,以startPage为准,会根据startPage参数来查询
     */
@Test
public void testNamespaceWithPageRowBounds() {
    SqlSession sqlSession = RowBoundsHelper.getSqlSession();
    try {
        //获取从0开始,10条内容
        PageRowBounds pageRowBounds = new PageRowBounds(0, 10);
        List<Country> list = sqlSession.selectList("selectAll", null, pageRowBounds);
        assertEquals(10, list.size());
        assertEquals(183L, pageRowBounds.getTotal().longValue());
        //判断查询结果的位置是否正确
        assertEquals(1, list.get(0).getId());
        assertEquals(10, list.get(list.size() - 1).getId());
        //获取从10开始,10条内容
        pageRowBounds = new PageRowBounds(90, 10);
        list = sqlSession.selectList("selectAll", null, pageRowBounds);
        assertEquals(10, list.size());
        assertEquals(183L, pageRowBounds.getTotal().longValue());
        //判断查询结果的位置是否正确
        assertEquals(91, list.get(0).getId());
        assertEquals(100, list.get(list.size() - 1).getId());
        //获取从20开始,20条内容
        pageRowBounds = new PageRowBounds(100, 20);
        list = sqlSession.selectList("selectAll", null, pageRowBounds);
        assertEquals(20, list.size());
        assertEquals(183L, pageRowBounds.getTotal().longValue());
        //判断查询结果的位置是否正确
        assertEquals(101, list.get(0).getId());
        assertEquals(120, list.get(list.size() - 1).getId());
    } finally {
        sqlSession.close();
    }
}
Also used : SqlSession(org.apache.ibatis.session.SqlSession) PageRowBounds(com.github.pagehelper.PageRowBounds) Country(com.github.pagehelper.model.Country) Test(org.junit.Test)

Example 32 with Country

use of com.github.pagehelper.model.Country in project Mybatis-PageHelper by pagehelper.

the class PageRowBoundsTest method testWithRowboundsAndCountTrue.

/**
     * 使用Mapper接口调用时,使用PageHelper.startPage效果更好,不需要添加Mapper接口参数
     */
@Test
public void testWithRowboundsAndCountTrue() {
    SqlSession sqlSession = RowBoundsHelper.getSqlSession();
    CountryMapper countryMapper = sqlSession.getMapper(CountryMapper.class);
    try {
        //limit=0,这时候相当于用分页插件求count,但是前提必须是配置rounbounds方式求count,否则都是-1
        //这里由于没有配置,应该都是-1
        PageRowBounds pageRowBounds = new PageRowBounds(0, -1);
        List<Country> list = countryMapper.selectAll(pageRowBounds);
        assertEquals(183, list.size());
        //pageSize<0的时候同上
        list = countryMapper.selectAll(new PageRowBounds(0, -100));
        assertEquals(183, list.size());
    } finally {
        sqlSession.close();
    }
}
Also used : SqlSession(org.apache.ibatis.session.SqlSession) PageRowBounds(com.github.pagehelper.PageRowBounds) CountryMapper(com.github.pagehelper.mapper.CountryMapper) Country(com.github.pagehelper.model.Country) Test(org.junit.Test)

Example 33 with Country

use of com.github.pagehelper.model.Country in project Mybatis-PageHelper by pagehelper.

the class PageRowBoundsTest method testNamespaceWithRowBounds2.

@Test
public void testNamespaceWithRowBounds2() {
    SqlSession sqlSession = RowBoundsHelper.getSqlSession();
    try {
        //获取从0开始,10条内容
        PageRowBounds pageRowBounds = new PageRowBounds(0, 10);
        List<Country> list = sqlSession.selectList("selectIf", null, pageRowBounds);
        assertEquals(10, list.size());
        assertEquals(183L, pageRowBounds.getTotal().longValue());
        //判断查询结果的位置是否正确
        assertEquals(1, list.get(0).getId());
        assertEquals(10, list.get(list.size() - 1).getId());
        Map<String, Object> map = new HashMap<String, Object>();
        map.put("id", 10);
        //获取从10开始,10条内容
        pageRowBounds = new PageRowBounds(90, 10);
        list = sqlSession.selectList("selectIf", map, pageRowBounds);
        assertEquals(10, list.size());
        assertEquals(173L, pageRowBounds.getTotal().longValue());
        //判断查询结果的位置是否正确
        assertEquals(101, list.get(0).getId());
        assertEquals(110, list.get(list.size() - 1).getId());
    } finally {
        sqlSession.close();
    }
}
Also used : SqlSession(org.apache.ibatis.session.SqlSession) PageRowBounds(com.github.pagehelper.PageRowBounds) HashMap(java.util.HashMap) Country(com.github.pagehelper.model.Country) Test(org.junit.Test)

Example 34 with Country

use of com.github.pagehelper.model.Country in project Mybatis-PageHelper by pagehelper.

the class RowBoundsTest method testMapperWithRowBounds.

/**
     * 使用Mapper接口调用时,对接口增加RowBounds参数,不需要修改对应的xml配置(或注解配置)
     * <p/>
     * RowBounds方式不进行count查询,可以通过修改Page代码实现
     * <p/>
     * 这种情况下如果同时使用startPage方法,以startPage为准
     */
@Test
public void testMapperWithRowBounds() {
    SqlSession sqlSession = RowBoundsHelper.getSqlSession();
    CountryMapper countryMapper = sqlSession.getMapper(CountryMapper.class);
    try {
        //获取第1页,10条内容,默认查询总数count
        List<Country> list = countryMapper.selectAll(new RowBounds(0, 10));
        //新增PageInfo对象,对返回结果进行封装
        assertEquals(10, list.size());
        //判断查询结果的位置是否正确
        assertEquals(1, list.get(0).getId());
        assertEquals(10, list.get(list.size() - 1).getId());
        //获取第10页,10条内容,显式查询总数count
        list = countryMapper.selectAll(new RowBounds(90, 10));
        assertEquals(10, list.size());
        //判断查询结果的位置是否正确
        assertEquals(91, list.get(0).getId());
        assertEquals(100, list.get(list.size() - 1).getId());
        //获取第3页,20条内容,默认查询总数count
        list = countryMapper.selectAll(new RowBounds(100, 20));
        assertEquals(20, list.size());
        //判断查询结果的位置是否正确
        assertEquals(101, list.get(0).getId());
        assertEquals(120, list.get(list.size() - 1).getId());
    } finally {
        sqlSession.close();
    }
}
Also used : SqlSession(org.apache.ibatis.session.SqlSession) CountryMapper(com.github.pagehelper.mapper.CountryMapper) RowBounds(org.apache.ibatis.session.RowBounds) Country(com.github.pagehelper.model.Country) Test(org.junit.Test)

Example 35 with Country

use of com.github.pagehelper.model.Country in project Mybatis-PageHelper by pagehelper.

the class ArgumentsObjTest method testArgumentsObj.

/**
     * 使用Mapper接口调用时,使用PageHelper.startPage效果更好,不需要添加Mapper接口参数
     */
@Test
public void testArgumentsObj() {
    SqlSession sqlSession = MybatisHelper.getSqlSession();
    CountryMapper countryMapper = sqlSession.getMapper(CountryMapper.class);
    try {
        CountryQueryModel queryModel = new CountryQueryModel();
        queryModel.setPageNum(1);
        queryModel.setPageSize(10);
        queryModel.setOrderBy("id desc");
        List<Country> list = countryMapper.selectByQueryModel(queryModel);
        assertEquals(10, list.size());
        assertEquals(183, ((Page<?>) list).getTotal());
        queryModel.setPageNum(2);
        queryModel.setOrderBy(null);
        list = countryMapper.selectByQueryModel(queryModel);
        assertEquals(10, list.size());
        assertEquals(183, ((Page<?>) list).getTotal());
        queryModel.setPageNum(3);
        queryModel.setPageSize(20);
        list = countryMapper.selectByQueryModel(queryModel);
        assertEquals(20, list.size());
        assertEquals(183, ((Page<?>) list).getTotal());
    } finally {
        sqlSession.close();
    }
}
Also used : CountryQueryModel(com.github.pagehelper.model.CountryQueryModel) SqlSession(org.apache.ibatis.session.SqlSession) CountryMapper(com.github.pagehelper.mapper.CountryMapper) Country(com.github.pagehelper.model.Country) Test(org.junit.Test)

Aggregations

Country (com.github.pagehelper.model.Country)71 SqlSession (org.apache.ibatis.session.SqlSession)71 Test (org.junit.Test)71 CountryMapper (com.github.pagehelper.mapper.CountryMapper)57 RowBounds (org.apache.ibatis.session.RowBounds)14 HashMap (java.util.HashMap)12 PageInfo (com.github.pagehelper.PageInfo)11 ArrayList (java.util.ArrayList)5 PageRowBounds (com.github.pagehelper.PageRowBounds)4 CountryExample (com.github.pagehelper.model.CountryExample)2 ISelect (com.github.pagehelper.ISelect)1 CountryQueryModel (com.github.pagehelper.model.CountryQueryModel)1 Map (java.util.Map)1