1、在SpringBoot項目中寫一個請求接口實作分頁查詢 接口代碼:
/**
* 擷取參數清單,分頁
*
* @param
* @return
* @throws Exception
*/
@GetMapping("/v1/zdyl/lcoModel/get/list")
public ResultJson lcoModelGetList(HttpServletRequest request) throws Exception {
Map<String, Object> data = new HashMap<>();
int pageIndex = 1;
int pageSize = 9;
if (request.getParameter("pageIndex") != null
&& request.getParameter("pageSize") != null
&& !request.getParameter("pageIndex").equals("")
&& !request.getParameter("pageSize").equals("")) {
pageIndex = Integer.parseInt(request.getParameter("pageIndex"));
pageSize = Integer.parseInt(request.getParameter("pageSize"));
}
//條件構造器
QueryWrapper<LcoModel> lcoModelEntityWrapper = new QueryWrapper<>();
lcoModelEntityWrapper.orderByDesc("create_time");
if (request.getParameter("name") != null && !request.getParameter("name").equals(""))
lcoModelEntityWrapper.like("name", request.getParameter("name"));
Page<LcoModel> lcoModelPage = (Page<LcoModel>) ilCoModelService.page(new Page<LcoModel>(pageIndex, pageSize), lcoModelEntityWrapper);
data.put("total", lcoModelPage.getTotal());
data.put("data", lcoModelPage.getRecords());
return ResultJson.ok("擷取參數清單成功!", data);
}
其中的傳入參數類型是:HttpServletRequest,請求的url格式是:
http://localhost:8899/v1/zdyl/lcoModel/get/list?pageIndex=2&pageSize=3
(如果請求接口中傳入的參數是@PathVariable,則接口請求格式直接是斜杠後面跟參數即可,例如:
http://localhost:8899/v1/zdyl/lcoModel/get/detail/1201c5e6-4b4b-4fb8-995f-b0677c681178)
2、語句: @ConfigurationProperties(prefix = "spring.datasource") 的意思是從
spring.datasource
這個目錄下面讀取配置。
spring:
jackson:
time-zone: GMT+8
date-format: yyyy-MM-dd HH:mm:ss
datasource:
driver-class-name: com.mysql.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
jdbc-url: jdbc:mysql://shujvku.mysql.rds.aliyuncs.com:3306/dm?serverTimezone=Asia/Shanghai&useSSL=false&allowPublicKeyRetrieval=true&characterEncoding=utf-8
username: yonghuming
password: mima
filters: stat
maxActive: 20
initialSize: 1
maxWait: 60000
minIdle: 1
timeBetweenEvictionRunsMillis: 60000
minEvictableIdleTimeMillis: 300000
validationQuery: select 'x'
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
poolPreparedStatements: true
maxOpenPreparedStatements: 20
3、寫完上述的接口後,發現查詢的時候沒有實作分頁,還是所有的資料都查出來了,檢查後發現沒有進行mybatis-plus分頁插件的配置,添加上MyBaties-Plus配置類:
package com.zdyl.devicemanagement.config;
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import javax.sql.DataSource;
@MapperScan("com.example.demo.**.mapper")
@Configuration
public class MybatisConfig {
/**
* 資料源配置
*
* @return
*/
@Bean
@ConfigurationProperties(prefix = "spring.datasource")
public DataSource dataSource() {
return DataSourceBuilder.create().build();
}
/**
* mybatis-plus分頁插件<br>
* 文檔:http://mp.baomidou.com<br>
*/
@Bean
public PaginationInterceptor paginationInterceptor() {
return new PaginationInterceptor();
}
}
其中:
@MapperScan("com.example.demo.**.mapper")
這一行可以代替Mapper類中的@Mapper注解。