MyBatis之分页

作者: Ping开源 | 来源:发表于2021-03-16 23:16 被阅读0次

五、分页

目录:使用Limit分页、RowBounds分页、分页插件

1.使用Limit分页

语法

select * from user limit startIndex,pageSize;

使用MyBatis实现分页,核心是使用SQL语句。
1)实现接口

package com.ping.dao;
import …
public interface UserMapper {
  //分页
  List<User> getUserByLimit(Map<String,Integer> map);
}

2)UserMapper.xml中的sql语句

<!--//分页-->
<select id="getUserByLimit" parameterType="map" resultMap="UserMap">
  select * from  mybatis.user limit #{startIndex},#{pageSize}
</select>

3)测试

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

2.RowBounds分页

不再使用SQL实现分页。
1)实现接口

package com.ping.dao;
import …
public interface UserMapper {
  //分页
  List<User> getUserByRowBounds();
}

2)UserMapper.xml中的sql语句

<!--//分页-->
<select id="getUserByRowBounds" resultMap="UserMap">
  select * from  mybatis.user
</select>

3)测试

@Test
public void getUserByRowBounds(){
  SqlSession sqlSession = MybatisUtils.getSqlSession();
  //RowBounds实现
  RowBounds rowBounds = new RowBounds(1, 2);
  //通过Java代码层面实现分页
  List<User> userList = sqlSession.selectList("com.kuang.dao.UserMapper.getUserByRowBounds",null,rowBounds);
  for (User user : userList) {
    System.out.println(user);
  }
  sqlSession.close();
}

3.分页插件(了解即可)

分页插件

相关文章

网友评论

    本文标题:MyBatis之分页

    本文链接:https://www.haomeiwen.com/subject/nxodcltx.html