1、编写分页插件配置类
package com.xiaomin.page.config;
import com.baomidou.mybatisplus.extension.plugins.OptimisticLockerInterceptor;
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import com.baomidou.mybatisplus.extension.plugins.PerformanceInterceptor;
import com.baomidou.mybatisplus.extension.plugins.pagination.optimize.JsqlParserCountOptimize;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;
import org.springframework.transaction.annotation.EnableTransactionManagement;
//Spring boot方式
@EnableTransactionManagement//开启事务管理器
@Configuration//表示该类是配置类
@MapperScan("com.xiaomin.page.mapper")//扫描mapper接口,目的是关联自定义的mapper接口
public class MybatisPlusConfig {
/**
* 分页插件
* @return
*/
@Bean
public PaginationInterceptor paginationInterceptor() {
return new PaginationInterceptor();
}
/**
* 性能分析拦截器,不建议生产使用 用来观察 SQL 执行情况及执行时长, 默认dev,staging 环境开启
* @author fxbin
* @return com.baomidou.mybatisplus.extension.plugins.PerformanceInterceptor;
*/
@Bean
@Profile({"dev", "test"})
public PerformanceInterceptor performanceInterceptor(){
//启用性能分析插件, SQL是否格式化 默认false,此处开启
return new PerformanceInterceptor().setFormat(true);
}
/**
* 乐观锁
* https://baomidou.gitee.io/mybatis-plus-doc/#/optimistic-locker-plugin
*
* @return OptimisticLockerInterceptor
*/
@Bean
public OptimisticLockerInterceptor optimisticLockerInterceptor() {
return new OptimisticLockerInterceptor();
}
}
2、测试类
package com.xiaomin.page.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.xiaomin.page.pojo.User;
import com.xiaomin.page.service.UserService;
import com.xiaomin.page.utils.ResultUtil;
import com.xiaomin.page.utils.ResultVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ResponseBody;
/**
* <p>
* 前端控制器
* </p>
*
* @author wangxm
* @since 2020-03-18
*/
@Controller
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/page")
@ResponseBody
public ResultVo<User> page(long current,long size){
Page<User> userPage = new Page<>(current, size);
IPage<User> page = userService.page(userPage);
System.out.println("当前页码:"+page.getCurrent());
System.out.println("每页显示数量:"+page.getSize());
System.out.println("总页数:"+page.getPages());
System.out.println("总记录数:"+page.getTotal());
return ResultUtil.success(page);
}
}
截图: