9. 分页
2022年8月30日
9. 分页
limit 分页
sql
select * from mybatis.userlimit #{startIndex}, #{pageSize};
接口
/**
* 分页查询
*
* @param map map
* @return user
* */
List<User> getUserLimit(Map<String, Object> map);
mapper.xml
<select id="getUserLimit" parameterType="map" resultMap="userMap">
select * from mybatis.user limit #{startIndex}, #{pageSize};
</select>
测试
@Test
public void limitTest() {
try (SqlSession sqlSession = MybatisUtils.getSession()) {
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
Map<String, Object> map = new HashMap<>();
map.put("startIndex", 0);
map.put("pageSize", 2);
List<User> userLimit = mapper.getUserLimit(map);
System.out.println(userLimit);
sqlSession.commit();
} catch (Exception e) {
e.printStackTrace();
}
}
RowBounds 分页
接口
/**
* 逻辑分页查询
*
* @param rowBounds r
* @return user
*/
List<User> getUserLimitRowBounds(RowBounds rowBounds);
mapper.xml
<select id="getUserLimitRowBounds" resultMap="userMap">
select *
from mybatis.user;
</select>
测试
public void limitRowBounds() {
RowBounds rowBounds = new RowBounds(2, 2);
SqlSession session = MybatisUtils.getSession();
List<User> userList = session.selectList("dao.UserMapper.getUserLimitRowBounds", null, rowBounds);
System.out.println(userList);
}
分页插件
Mybatis PageHelper
添加 maven 依赖
<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>5.2.1</version> </dependency>
配置拦截器插件
<!-- plugins在配置文件中的位置必须符合要求,否则会报错,顺序如下: properties?, settings?, typeAliases?, typeHandlers?, objectFactory?,objectWrapperFactory?, plugins?, environments?, databaseIdProvider?, mappers? --> <plugins> <!-- com.github.pagehelper为PageHelper类所在包名 --> <plugin interceptor="com.github.pagehelper.PageInterceptor"> <!-- 使用下面的方式配置参数,后面会有所有的参数介绍 --> <property name="param1" value="value1"/> </plugin> </plugins>
简单使用
<!--查询所有--> <select id="selectAll" resultType="com.bjpowernode.domain.Student"> select * from mybatis.student order by id </select>
@Test public void testSelectAllPageHelper(){ SqlSession sqlSession = MyBatisUtils.getSqlSession(); StudentDao dao = sqlSession.getMapper(StudentDao.class); //加入PageHelper的方法,分页 // pageNum: 第几页, 从1开始 // pageSize: 一页中有多少行数据 PageHelper.startPage(1,3); List<Student> students = dao.selectAll(); for(Student stu:students){ System.out.println("foreach--one ==="+stu); } }