mybatisplus分页
时间: 2023-07-06 20:37:33 浏览: 69
MybatisPlus 是一个基于 Mybatis 的增强工具,其提供了一些常用的功能,如分页查询等。
MybatisPlus 中的分页查询支持两种分页方式:基于物理分页和基于逻辑分页。
基于物理分页:是通过在 SQL 中使用 LIMIT 和 OFFSET 实现的。这种方式在数据量较大时性能较差。
基于逻辑分页:是通过在 SQL 中使用子查询等方式实现的。这种方式在数据量较大时性能较好。
以下是 MybatisPlus 分页查询的示例代码:
```java
// 创建分页对象
Page<User> page = new Page<>(1, 10);
// 构建查询条件
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("status", 1);
// 执行分页查询
IPage<User> userPage = userMapper.selectPage(page, queryWrapper);
// 获取分页结果
List<User> userList = userPage.getRecords();
```
在上面的代码中,我们先创建了一个分页对象,然后构建了查询条件,最后通过调用 selectPage 方法执行分页查询。查询结果会被封装在 IPage 对象中,我们可以通过调用 getRecords 方法获取分页结果。
相关问题
MybatisPlus分页
MybatisPlus分页是通过使用Mybatis-plus插件的分页机制实现的。在配置文件中,我们需要添加一个配置类(如MybatisPlusConfig),并在此配置类中添加paginationInterceptor()方法来配置分页功能的拦截器。这样,我们就可以在接口的方法中使用分页功能,返回分页的数据。使用分页功能时,我们可以使用Lambda表达式或普通查询来添加查询条件。具体步骤如下:
1. 首先,在项目的配置文件夹下创建一个Mybatis-plus配置类。这个配置类中需要添加一个paginationInterceptor()方法来配置分页功能的拦截器。
2. 在接口中编写测试方法,使用分页功能查询数据。
3. 注意,在使用分页功能时,如果还有其他查询条件,可以使用Lambda表达式或普通查询来添加条件。
总结起来,使用MybatisPlus分页的步骤是:创建MybatisPlus配置类 -> 添加paginationInterceptor()方法配置分页拦截器 -> 在接口方法中使用分页功能 -> 可以使用Lambda表达式或普通查询添加查询条件。 <span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [Mybatis-plus的分页查询](https://blog.csdn.net/weixin_46213083/article/details/125258551)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *3* [Mybatis-Plus如何使用分页](https://blog.csdn.net/qq_42682745/article/details/121574682)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
mybatisplus 分页
MybatisPlus是一个基于Mybatis的增强工具包,它提供了一些方便的功能,包括分页查询。在MybatisPlus中,实现分页查询可以通过拦截器来实现。具体的步骤如下:
1. 首先,在配置类中添加MybatisPlus的拦截器配置。可以通过创建一个@Configuration注解的配置类,在该类中创建一个名为mybatisPlusInterceptor的Bean,并将分页拦截器PaginationInnerInterceptor添加到该拦截器中。示例如下:
```java
@Configuration
public class MybatisConfig {
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
return interceptor;
}
}
```
2. 在控制器中调用分页查询方法。在控制器中,可以使用MybatisPlus提供的Page类来创建一个分页对象,指定当前页和每页显示的记录数。然后,通过调用服务层提供的分页查询方法,将分页对象作为参数传入。示例如下:
```java
@GetMapping("/test")
public Response test(){
Page<Produce> producePage = new Page<>(1, 1);
Page<Produce> page = produceService.page(producePage);
List<Produce> records = page.getRecords();
return new Response<>(records, ResultEnum.SUCCESS);
}
```
3. 使用Lambda表达式进行分页查询。除了上述的方法外,MybatisPlus还提供了使用Lambda表达式进行分页查询的方式。在控制器中,可以使用LambdaQueryChainWrapper来构建查询条件,并通过链式调用的方式进行条件设置和分页查询。示例如下:
```java
@GetMapping("/test")
public Response test(){
Page<Produce> producePage = new Page<>(1, 2);
Page<Produce> page = new LambdaQueryChainWrapper<>(produceService.getBaseMapper())
.select(Produce::getPid, Produce::getPrice)
.lt(Produce::getPid, 5)
.page(producePage);
return new Response<>(page.getRecords(), ResultEnum.SUCCESS);
}
```
综上所述,MybatisPlus提供了多种方式来实现分页查询,可以根据具体的需求选择适合的方法进行使用。<em>1</em><em>2</em><em>3</em>
#### 引用[.reference_title]
- *1* *2* *3* [Mybatis-Plus如何使用分页](https://blog.csdn.net/qq_42682745/article/details/121574682)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}} ] [.reference_item]
[ .reference_list ]