1.首先创建一个配置类: config/MybatisPlusConfig.java
@Configuration
@MapperScan("com.demo.mapper")
public class MybatisPlusConfig {
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor(){
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
return interceptor;
}
}
测试代码:
@Test
public void testPage(){
Page<User> page=new Page<>(1,3);//查询的页码和数据的个数。(当前查到的数据是第一页三条数据)
userMapper.selectPage(page, null);
System.out.println("page = " + page);
}
然后一个简单的分页功能就实现了。
SELECT id,name,age,email,is_deleted FROM user WHERE is_deleted=0 LIMIT ?
Columns: id, name, age, email, is_deleted
<== Row: 2, 小红, 22, xiaohong@qq.com, 0
<== Row: 3, 小明, 28, xiaoming@qq.com, 0
<== Row: 4, 小明, 21, xiaoming@qq.com, 0
<== Total: 3
分页相关数据的获取
@Test
public void testPage(){
Page<User> page=new Page<>(1,3);//查询的页码和数据的个数。(当前查到的数据是第一页三条数据)
userMapper.selectPage(page, null);
System.out.println("page = " + page);
System.out.println("获取分页查询得到的数据:"+page.getRecords());
System.out.println("获取总页数 = " + page.getPages());
System.out.println("获取当前显示的页数 = " + page.getCurrent());
System.out.println("获取数据库中的总数据数 = " + page.getTotal());
System.out.println("是否还有下一页? = " + page.hasNext());
System.out.println("是否还有上一页? = " + page.hasPrevious());
}
自定义分页功能
定义一个分页接口
Page<User> selectPageVO(@Param("page") Page<User> page,@Param("age") Integer age);
定义这个接口对应的sql:
<!-- Page<User> selectPageVO(@Param("page") Page<User> page,@Param("age") Integer age);-->
<select id="selectPageVO" resultType="User">
select id,name,email,age from user where age >#{age}
</select>
测试自定义的分页功能:
@Test
public void testPageVO(){
Page<User> page=new Page<>(1,3);
userMapper.selectPageVO(page,23);
System.out.println(page);
}
查询的是年龄大于23的数据然后在进行分页操作。