Search in sources :

Example 31 with RowBounds

use of org.apache.ibatis.session.RowBounds in project Mybatis-PageHelper by pagehelper.

the class PageSizeLessThenOrEqualZeroTest method testWithRowbounds.

/**
     * 使用Mapper接口调用时,使用PageHelper.startPage效果更好,不需要添加Mapper接口参数
     */
@Test
public void testWithRowbounds() {
    //注意这里是MybatisRowBoundsHelper,会求count
    SqlSession sqlSession = MybatisHelper.getSqlSession();
    CountryMapper countryMapper = sqlSession.getMapper(CountryMapper.class);
    try {
        //limit=0,这时候相当于用分页插件求count,但是前提必须是配置rounbounds方式求count,否则都是-1
        List<Country> list = countryMapper.selectAll(new RowBounds(1, -1));
        PageInfo<Country> page = new PageInfo<Country>(list);
        assertEquals(0, list.size());
        assertEquals(183, page.getTotal());
        //limit<0的时候同上
        list = countryMapper.selectAll(new RowBounds(1, -100));
        page = new PageInfo<Country>(list);
        assertEquals(0, list.size());
        assertEquals(183, page.getTotal());
    } finally {
        sqlSession.close();
    }
}
Also used : PageInfo(com.github.pagehelper.PageInfo) 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 32 with RowBounds

use of org.apache.ibatis.session.RowBounds 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 = MybatisRowBoundsHelper.getSqlSession();
    CountryMapper countryMapper = sqlSession.getMapper(CountryMapper.class);
    try {
        //获取第1页,10条内容,默认查询总数count
        List<Country> list = countryMapper.selectAll(new RowBounds(1, 10));
        //新增PageInfo对象,对返回结果进行封装
        PageInfo<Country> page = new PageInfo<Country>(list);
        assertEquals(10, list.size());
        assertEquals(183, page.getTotal());
        //判断查询结果的位置是否正确
        assertEquals(1, list.get(0).getId());
        assertEquals(10, list.get(list.size() - 1).getId());
        //获取第10页,10条内容,显式查询总数count
        list = countryMapper.selectAll(new RowBounds(10, 10));
        assertEquals(10, list.size());
        assertEquals(183, ((Page<?>) list).getTotal());
        //判断查询结果的位置是否正确
        assertEquals(91, list.get(0).getId());
        assertEquals(100, list.get(list.size() - 1).getId());
        //获取第3页,20条内容,默认查询总数count
        list = countryMapper.selectAll(new RowBounds(6, 20));
        assertEquals(20, list.size());
        assertEquals(183, ((Page<?>) list).getTotal());
        //判断查询结果的位置是否正确
        assertEquals(101, list.get(0).getId());
        assertEquals(120, list.get(list.size() - 1).getId());
    } finally {
        sqlSession.close();
    }
}
Also used : PageInfo(com.github.pagehelper.PageInfo) 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 33 with RowBounds

use of org.apache.ibatis.session.RowBounds in project Mybatis-PageHelper by pagehelper.

the class RowBoundsTest method testNamespaceWithRowBounds2.

@Test
public void testNamespaceWithRowBounds2() {
    SqlSession sqlSession = MybatisRowBoundsHelper.getSqlSession();
    try {
        //获取从0开始,10条内容
        List<Country> list = sqlSession.selectList("selectIf", null, new RowBounds(1, 10));
        assertEquals(10, list.size());
        assertEquals(183, ((Page<?>) list).getTotal());
        //判断查询结果的位置是否正确
        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条内容
        list = sqlSession.selectList("selectIf", map, new RowBounds(10, 10));
        assertEquals(10, list.size());
        assertEquals(173, ((Page<?>) list).getTotal());
        //判断查询结果的位置是否正确
        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) HashMap(java.util.HashMap) RowBounds(org.apache.ibatis.session.RowBounds) Country(com.github.pagehelper.model.Country) Test(org.junit.Test)

Example 34 with RowBounds

use of org.apache.ibatis.session.RowBounds in project Mybatis-PageHelper by pagehelper.

the class PageHelperTest method testMapperWithRowBounds.

/**
     * 使用Mapper接口调用时,对接口增加RowBounds参数,不需要修改对应的xml配置(或注解配置)
     * <p/>
     * RowBounds方式不进行count查询,可以通过修改Page代码实现
     * <p/>
     * 这种情况下如果同时使用startPage方法,以startPage为准
     */
@Test
public void testMapperWithRowBounds() {
    SqlSession sqlSession = MybatisHelper.getSqlSession();
    CountryMapper countryMapper = sqlSession.getMapper(CountryMapper.class);
    try {
        //获取第1页,10条内容,默认查询总数count
        List<Country> list = countryMapper.selectAll(new RowBounds(0, 10));
        assertEquals(10, list.size());
        assertEquals(183, ((Page<?>) list).getTotal());
        //判断查询结果的位置是否正确
        assertEquals(1, list.get(0).getId());
        assertEquals(10, list.get(list.size() - 1).getId());
        //获取第2页,10条内容,显式查询总数count
        list = countryMapper.selectAll(new RowBounds(10, 10));
        assertEquals(10, list.size());
        assertEquals(183, ((Page<?>) list).getTotal());
        //判断查询结果的位置是否正确
        assertEquals(11, list.get(0).getId());
        assertEquals(20, list.get(list.size() - 1).getId());
        //获取第3页,20条内容,默认查询总数count
        list = countryMapper.selectAll(new RowBounds(60, 20));
        assertEquals(20, list.size());
        assertEquals(183, ((Page<?>) list).getTotal());
        //判断查询结果的位置是否正确
        assertEquals(61, list.get(0).getId());
        assertEquals(80, list.get(list.size() - 1).getId());
        //同时使用startPage和RowBounds时,以startPage为准
        PageHelper.startPage(1, 20);
        list = countryMapper.selectAll(new RowBounds(60, 20));
        assertEquals(20, list.size());
        assertEquals(183, ((Page<?>) list).getTotal());
        //判断查询结果的位置是否正确
        assertEquals(1, list.get(0).getId());
        assertEquals(20, 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 RowBounds

use of org.apache.ibatis.session.RowBounds in project Mybatis-PageHelper by pagehelper.

the class PageHelperTest method testNamespaceWithRowBounds.

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

Aggregations

RowBounds (org.apache.ibatis.session.RowBounds)46 Test (org.junit.Test)35 SqlSession (org.apache.ibatis.session.SqlSession)31 Country (com.github.pagehelper.model.Country)14 MappedStatement (org.apache.ibatis.mapping.MappedStatement)8 CountryMapper (com.github.pagehelper.mapper.CountryMapper)7 BaseDataTest (org.apache.ibatis.BaseDataTest)7 HashMap (java.util.HashMap)6 Executor (org.apache.ibatis.executor.Executor)5 BoundSql (org.apache.ibatis.mapping.BoundSql)5 MetaObject (org.apache.ibatis.reflection.MetaObject)5 ResultHandler (org.apache.ibatis.session.ResultHandler)5 PageInfo (com.github.pagehelper.PageInfo)4 CacheKey (org.apache.ibatis.cache.CacheKey)4 ArrayList (java.util.ArrayList)3 List (java.util.List)3 Map (java.util.Map)3 Blog (org.apache.ibatis.domain.blog.Blog)3 DraftPost (org.apache.ibatis.domain.blog.DraftPost)3 Post (org.apache.ibatis.domain.blog.Post)3