添加pom依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.3</version>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>com.github.jsqlparser</groupId>
<artifactId>jsqlparser</artifactId>
<version>3.1</version>
</dependency>
注意: 版本一定要匹配,高配高,低配低
MybatisPlusConfig
import com.baomidou.mybatisplus.annotation.DbType;
import lombok.extern.slf4j.Slf4j;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
@Configuration
@MapperScan("com.nari.slsd.msrv.sl.main.mapper")
@ConditionalOnClass(value = {MybatisPlusInterceptor.class})
@Slf4j
public class MybatisPlusConfig {
private const String dataType = "oracle";
/**
* 分页插件
*/
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
log.info("开始执行mybatis-plus拦截器,{}",dataType);
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.getDbType(dataType)));
return interceptor;
}
}
dataType 根据需要修改数据源
Controller
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
public class DemoManageController {
@Autowired
private DemoServiceImpl demoServiceImpl;
@PostMapping("/getData")
public IPage<DemoVO> getData(@RequestParam("fetchParam") FetchParam[] fetchParam, @RequestParam("PageNo") int PageNo, @RequestParam("PageSize") int PageSize){
Page<DemoVO> page = new Page<>(PageNo, PageSize);
IPage<DemoVO> specialData = demoServiceImpl.getSpecialData(page,fetchParam);
return specialData;
}
}
fetchParam 为查询限制参数,PageNo当前页,PageNum显示条数
page 和 Ipage 对象来源包一定要按照上面要求写
Service & ServiceImpl
Service
public interface DemoManageService extends IService<DemoVO> {
IPage<DemoVO> getSpecialData( Page<DemoVO> page,FetchParam[] fetchParams);
}
ServiceImpl
@Service
@Slf4j
public class DemoServiceImpl extends ServiceImpl<DemoManageMapper,DemoVO> implements DemoManageService {
@Autowired
private DemoManageMapper demoManageMapper;
@Override
public IPage<DemoVO> getSpecialData(Page<DemoVO> page,FetchParam[] fetchParams) {
return demoManageMapper.querySpecialPage(page,fetchParams);
}
}
Mapper
@Mapper
public interface DemoManageMapper extends BaseMapper<DemoVO> {
IPage<DemoVO> querySpecialPage(@Param("page") Page<DemoVO> page, @Param("fetchParam") FetchParam[] fetchParam);
}
Sql语句
<select id="querySpecialPage" resultType="com.nari.slsd.msrv.sl.main.model.vo.DemoVO" >
select <include refid="baseQueryParams"/> from YEARDB
order by senid asc
</select>