mybatisplus实现分页
时间: 2023-09-03 11:15:44 浏览: 60
好的,关于mybatisplus实现分页,你可以使用Page类,代码示例如下:
```java
// 创建Page对象,设置当前页和每页记录数
Page<User> page = new Page<>(pageNum, pageSize);
// 调用mybatisplus的selectPage方法进行分页查询
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
IPage<User> userPage = userDao.selectPage(page, queryWrapper);
// 获取分页结果
List<User> userList = userPage.getRecords(); // 当前页记录
long total = userPage.getTotal(); // 总记录数
long pages = userPage.getPages(); // 总页数
long current = userPage.getCurrent(); // 当前页
long size = userPage.getSize(); // 每页记录数
```
希望这对你有所帮助!
相关问题
mybatisplus 实现分页
MybatisPlus实现分页的步骤如下:
1. 引入MybatisPlus依赖
在项目的pom.xml中添加MybatisPlus的依赖:
```xml
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.1</version>
</dependency>
```
2. 配置分页插件
在MybatisPlus的配置类中,配置分页插件:
```java
@Configuration
public class MybatisPlusConfig {
@Bean
public PaginationInterceptor paginationInterceptor() {
return new PaginationInterceptor();
}
}
```
3. 使用分页查询
在需要分页查询的地方,使用MybatisPlus的Page对象进行查询:
```java
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public List<User> getUserList(int page, int size) {
Page<User> userPage = new Page<>(page, size);
return userMapper.selectPage(userPage, null).getRecords();
}
}
```
其中,Page的第一个参数为当前页数,第二个参数为每页大小。selectPage方法的第一个参数为Page对象,第二个参数为查询条件。getRecords()方法获取查询结果。
4. 返回分页信息
可以在返回结果中,添加分页信息:
```java
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public PageResult<User> getUserList(int page, int size) {
Page<User> userPage = new Page<>(page, size);
userMapper.selectPage(userPage, null);
return new PageResult<>(userPage);
}
}
```
其中,PageResult包含了查询结果和分页信息。在构造函数中,传入Page对象即可获取分页信息。
MybatisPlus实现分页的原理
MybatisPlus是基于Mybatis的增强工具,在分页方面提供了非常方便的实现方式。
MybatisPlus实现分页的原理主要是通过拦截SQL语句,重写其中的LIMIT语句,从而实现分页。具体实现步骤如下:
1. 配置MybatisPlus的分页插件:在mybatis-config.xml中配置分页插件。
2. 创建分页查询参数对象:使用MybatisPlus提供的Page类创建分页查询参数对象。
3. 在Mapper接口中定义分页查询方法:定义分页查询方法,并通过@Param注解将Page对象传递给Mapper方法。
4. 实现分页查询方法:在Mapper接口对应的XML文件中,通过拦截SQL语句,重写其中的LIMIT语句,从而实现分页。
例如,在Mapper接口中定义分页查询方法:
```java
List<User> selectUserByPage(@Param("page") Page<User> page, @Param("userName") String userName);
```
在Mapper接口对应的XML文件中,实现分页查询方法:
```xml
<select id="selectUserByPage" resultType="User">
SELECT * FROM user WHERE user_name like concat('%',#{userName},'%') LIMIT #{page.offset}, #{page.size}
</select>
```
在该SQL语句中,#{page.offset}表示分页查询的偏移量,#{page.size}表示每页显示的记录数。
通过以上步骤,就可以非常方便地实现MybatisPlus的分页查询功能。