Search in sources :

Example 21 with RowBounds

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

the class RowBoundsTest method testNamespaceWithRowBounds.

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

Example 22 with RowBounds

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

the class RowBoundsTest 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
        List<Country> list = countryMapper.selectAll(new RowBounds(0, -1));
        assertEquals(183, list.size());
        //pageSize<0的时候同上
        list = countryMapper.selectAll(new RowBounds(0, -100));
        assertEquals(183, list.size());
    } 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 23 with RowBounds

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

the class BasicTest method testNamespace3.

@Test
public void testNamespace3() {
    SqlSession sqlSession = MybatisRowBoundsHelper.getSqlSession();
    try {
        Map<String, Object> map = new HashMap<String, Object>();
        Country country = new Country();
        map.put("country", country);
        //同时测试不可变Map
        map = Collections.unmodifiableMap(map);
        List<Country> list = sqlSession.selectList("select1", map, new RowBounds(1, 10));
        assertEquals(10, list.size());
        //判断查询结果的位置是否正确
        assertEquals(1, list.get(0).getId());
        map = new HashMap<String, Object>();
        country = new Country();
        country.setCountryname("China");
        map.put("country", country);
        //同时测试不可变Map
        map = Collections.unmodifiableMap(map);
        list = sqlSession.selectList("select1", map, new RowBounds(1, 10));
        assertEquals(1, list.size());
        //判断查询结果的位置是否正确
        assertEquals(35, list.get(0).getId());
    } finally {
        sqlSession.close();
    }
}
Also used : SqlSession(org.apache.ibatis.session.SqlSession) HashMap(java.util.HashMap) Country(com.github.pagehelper.model.Country) RowBounds(org.apache.ibatis.session.RowBounds) Test(org.junit.Test)

Example 24 with RowBounds

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

the class PageSizeZeroTest method testWithRowbounds.

/**
     * 使用Mapper接口调用时,使用PageHelper.startPage效果更好,不需要添加Mapper接口参数
     */
@Test
public void testWithRowbounds() {
    SqlSession sqlSession = MybatisPageSizeZeroHelper.getSqlSession();
    CountryMapper countryMapper = sqlSession.getMapper(CountryMapper.class);
    try {
        //pageSize=0的时候查询全部结果
        List<Country> list = countryMapper.selectAll(new RowBounds(1, 0));
        PageInfo<Country> page = new PageInfo<Country>(list);
        assertEquals(183, list.size());
        assertEquals(183, page.getTotal());
        //pageSize=0的时候查询全部结果
        PageHelper.startPage(10, 0);
        list = countryMapper.selectAll(new RowBounds(1000, 0));
        page = new PageInfo<Country>(list);
        assertEquals(183, 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 25 with RowBounds

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

the class RowBoundsTest method testNamespaceWithRowBounds.

/**
     * 使用命名空间方式的RowBounds进行分页,使用RowBounds时不进行count查询
     * 通过修改代码可以进行count查询,没法通过其他方法改变参数
     * 因为如果通过调用一个别的方法来标记count查询,还不如直接startPage
     * <p/>
     * 同时使用startPage时,以startPage为准,会根据startPage参数来查询
     */
@Test
public void testNamespaceWithRowBounds() {
    SqlSession sqlSession = MybatisRowBoundsHelper.getSqlSession();
    try {
        //获取从0开始,10条内容
        List<Country> list = sqlSession.selectList("selectAll", 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());
        //获取从10开始,10条内容
        list = sqlSession.selectList("selectAll", null, 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());
        //获取从20开始,20条内容
        list = sqlSession.selectList("selectAll", null, 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 : 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)45 Test (org.junit.Test)35 SqlSession (org.apache.ibatis.session.SqlSession)31 Country (com.github.pagehelper.model.Country)14 CountryMapper (com.github.pagehelper.mapper.CountryMapper)7 BaseDataTest (org.apache.ibatis.BaseDataTest)7 MappedStatement (org.apache.ibatis.mapping.MappedStatement)7 HashMap (java.util.HashMap)6 PageInfo (com.github.pagehelper.PageInfo)4 Executor (org.apache.ibatis.executor.Executor)4 BoundSql (org.apache.ibatis.mapping.BoundSql)4 MetaObject (org.apache.ibatis.reflection.MetaObject)4 ResultHandler (org.apache.ibatis.session.ResultHandler)4 ArrayList (java.util.ArrayList)3 List (java.util.List)3 Map (java.util.Map)3 CacheKey (org.apache.ibatis.cache.CacheKey)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