mybatis学习之分页

分页一般分为物理分页:先查询所有值再分页输出,逻辑分页:直接分页查询输出,mybatis支持物理分页,如下:

1、物理分页:

mapper映射:

<select id="findStudents" resultMap="StudentResult">
    select * from t_student order by id asc
</select>

Dao接口:

/**
     * mybatis分页查询-逻辑分页
     * @param rowBounds
     * @return
     */
    public List<Student> findStudents(RowBounds rowBounds);

测试:

/**
     * 逻辑分页----查询所有数据再分页输出
     * @throws Exception
     */
    @Test
    public void testRowBounds() throws Exception{
        logger.info("学生查询-逻辑分页");
        int offset = 3;        //start
        int limit = 3;        //size
        RowBounds rowBounds = new RowBounds(offset,limit);
        List<Student> studentList = studentDao.findStudents(rowBounds);
        for (Student student : studentList) {
            System.out.println(student);
        }
    }

2、逻辑分页:

mapper映射:

<select id="findStudents2" parameterType="Map" resultMap="StudentResult">
    select * from t_student
    <if test="start != null and size != null">
        limit #{start},#{size}
    </if>
</select>

Dao接口:

/**
     * mybatis分页查询-物理分页
     * @param rowBounds
     * @return
     */
    public List<Student> findStudents2(Map<String, Object> map);

测试:

/**
     * 物理分页----查询分页数据再输出
     * @throws Exception
     */
    @Test
    public void testFind() throws Exception{
        logger.info("学生查询-物理分页");
        Map<String, Object> map = new HashMap<>();
        map.put("start", 0);
        map.put("size", 3);
        List<Student> studentList = studentDao.findStudents2(map);
        for (Student student : studentList) {
            System.out.println(student);
        }
    }

 

posted @ 2016-07-04 16:24  程序员小波与Bug  阅读(232)  评论(0编辑  收藏  举报