mybatis learning to achieve 4______ pagination

Implement paging here are two ideas:

1. Using the SQL limit?,?  

2. Use RowBounds

A manner (Step :):

In UserMapper 1.dao layer interface to write:

   // paging sql realize 
    List <User> getUserLimit (Map < String, Integer> map);

 

Write userMapper.xml in UserMapper interface layer 2.dao

 <select id="getUserLimit" parameterType="Map" resultType="User">
        select * from user limit #{indexStart},#{pageSize}
    </select>

3. The test class project to write:

   @Test
    public void testSqlLimit(){

        SqlSessionFactory sqlSessionFactory = MybatisUtils.getSqlSessionFactory();

        SqlSession sqlSession = sqlSessionFactory.openSession();


        int currentPage=1;
        int pageSize=2;
        Map<String, Integer> map = new HashMap<String,Integer>();
        map.put("indexStart",(currentPage-1)*pageSize);
        map.put("pageSize",pageSize);

        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        List<User> userLimit = mapper.getUserLimit(map);
        System.out.println(userLimit);
    }

Two way (Step):

In UserMapper 1.dao layer interface to write:

    // paged code implements 
    List <User> getUserByRowBounds ();

Write userMapper.xml in UserMapper interface layer 2.dao

  <select id="getUserByRowBounds" resultType="User">
        select * from user
    </select>

3. Test categories:

@Test
    public void testRowBounds(){
        SqlSessionFactory sqlSessionFactory = MybatisUtils.getSqlSessionFactory();
        SqlSession sqlSession = sqlSessionFactory.openSession();

        int currentPage=2;
        int pageSize=2;
        RowBounds rowBounds = new RowBounds((currentPage - 1) * pageSize, pageSize);
        //传进2参数
        //不能用getMapper
        List<Object> user = sqlSession.selectList("com.xbf.dao.UserMapper.getUserByRowBounds", null, rowBounds);
        System.out.println(user);

    }

 

Guess you like

Origin www.cnblogs.com/xbfchder/p/11237325.html