Mybatis使用Limit分页

user表

首先我们来回顾一下sql中的limit语句

SELECT * FROM `user` LIMIT 0,2

这里limit后面第一个参数为startIndex,也就是查询的起始点,第二个参数为pageSize,为本次查询的个数,连起来就是从第startIndex开始查pageSize个用户
结果如下:

SELECT * FROM `user` LIMIT 3

但如果limit后面只有一个参数,它的意思为默认从0开始查n个

好,接下来我们进入主题
分页查询最重要的两个参数startIndex和pageSize

<select id="getUserByLimit" parameterType="map" resultMap="LimitUser">
    select * from mybatis.user limit #{startIndex},#{pageSize}
</select>

<resultMap id="LimitUser" type="User">
    <result column="pwd" property="password"/>
</resultMap>

在sql中传入这两个参数

@Test
    public void getUserByLimit() {
        SqlSession sqlSession = MybatisUtils.getSqlSession();
        UserDao mapper = sqlSession.getMapper(UserDao.class);
        HashMap<String, Integer> map = new HashMap<String, Integer>();
        map.put("startIndex",0);
        map.put("pageSize",2);
        List<User> user = mapper.getUserByLimit(map);
        System.out.println(user);

        sqlSession.close();
    }

这里我使用的是map进行传参,往map中put入0和2,即可查询出前两个user

更多推荐

Mybatis使用Limit分页