package com.jt.config;
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
//1.表示这个类 是一个配置类 目的: 封装对象-交给Spring容器管理
@Configuration
public class MybatisPlusConfig {
// @Bean 将方法的返回值对象,交给Spring容器管理
//MP分页机制 Mysql分页语句/Oracle分页语句 为了实现功能复用 需要手动配置
//根据数据库类型不同 之后动态的生成Sql MP才能调用分页对象
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
//定义分页拦截器对象
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MARIADB));
return interceptor;
}
}
Service层分页代码(两种方式)
@Override
public PageResult getUserList(PageResult pageResult) {
//mybatis方法
// Integer start = (pageResult.getPageNum()-1)*pageResult.getPageSize();
// Integer pageSize = pageResult.getPageSize();
// String query = pageResult.getQuery();
// List<User> userList = usermapper.getUserList(start, pageSize, query);
// Long usernumble = usermapper.getUsernumble();
// pageResult.setRows(userList).setTotal(usernumble);
// return pageResult;
//mybatisplus方法
Integer pageNum = pageResult.getPageNum();
Integer pageSize = pageResult.getPageSize();
Page<User> Page = new Page<>(pageNum,pageSize);
QueryWrapper<User> qw = new QueryWrapper<>();
boolean b = StringUtils.hasLength(pageResult.getQuery());
qw.like(b,"username", pageResult.getQuery());
Page = usermapper.selectPage(Page, qw);
List<User> records = Page.getRecords();
long total = Page.getTotal();
pageResult.setTotal(total).setRows(records);
return pageResult;
}