目录
1、分页插件
MyBatis Plus自带分页插件,只要简单的配置即可实现分页功能 。
a>添加配置类
package com.csdn.mybatisplus.onfig;
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* @author summer
* @date 2022-04-21 15:35
*/
@Configuration
@MapperScan("com.csdn.mybatisplus.mapper")
public class MyBatisPlusConfig {
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor()
{
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); return interceptor;
}
}
b>测试
@Test
public void testPage(){
Integer a=null;
Page<User> page = new Page<>(2,3);
LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.gt(User::getAge,20);
Page<User> userPage = userMapper.selectPage(page, queryWrapper);
// 当前的集合对象
List<User> records = userPage.getRecords();
records.forEach(System.out::println);
// 当前页码
System.out.println(page.getCurrent());
// 当前的条数
System.out.println(page.getSize());
// 总条数
System.out.println(page.getTotal());
// 总页数
System.out.println(page.getPages());
// 是否有上一页
System.out.println(page.hasPrevious());
// 是否有下一页
System.out.println(page.hasNext());
}
sql语句
SELECT uid AS id,name,age,email,is_deleted FROM t_user WHERE is_deleted=0 AND (age > ?) LIMIT ?,?
2.xml自定义分页
很多时候我们需要写我们自己的分页查询条件,mp提供的分页有时候是不适用于我们的。
a>UserMapper中定义接口方法
/*** 根据年龄查询用户列表,分页显示 * @param page 分页对象,xml中可以从里面进行取值,传递参数 Page
* 即自动分页,必须放在第一位
* * @param age 年龄 * @return
* */
IPage<User> getUserByAge(@Param("page") Page<User> page,@Param("age") Integer age);
b>UserMapper.xml中编写SQL
<select id="getUserByAge" resultType="com.csdn.mybatisplus.bean.User">
select uid as id, name, age, email,is_deleted as isDeleted
from t_user
where age > #{age}
</select>
c>测试
@Test
public void testPage2(){
Page<User> page = new Page<>(2,5);
IPage<User> userByAge = userMapper.getUserByAge(page, 50);
Page<User> pages = (Page<User>) userByAge;
List<User> records = pages.getRecords();
records.forEach(System.out::println);
}