用mybatisplus实现一个分页查询
时间: 2023-10-17 11:24:18 浏览: 86
SpringBoot+MybatisPlus实现联表分页查询
首先,需要在pom.xml中添加mybatis-plus的依赖:
```xml
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.1</version>
</dependency>
```
接着,在配置文件中添加mybatis-plus的配置:
```properties
# mybatis-plus
mybatis-plus.mapper-locations=classpath:mapper/*.xml
mybatis-plus.type-aliases-package=com.example.entity
```
其中,`mapper-locations`配置了mapper文件的路径,`type-aliases-package`配置了实体类的路径。
接下来,创建一个实体类和对应的mapper文件。假设我们有一个`User`实体类和对应的`UserMapper`文件。
在`UserMapper`文件中,我们可以使用mybatis-plus提供的`Page`类来实现分页查询。示例代码如下:
```xml
<mapper namespace="com.example.mapper.UserMapper">
<select id="getUserList" resultType="com.example.entity.User">
select * from user
<where>
<if test="name != null and name != ''">
and name like concat('%', #{name}, '%')
</if>
</where>
</select>
</mapper>
```
其中,`getUserList`是我们定义的分页查询方法,`resultType`指定了返回的实体类类型。
在Java代码中,我们可以使用`Page`类来实现分页查询。示例代码如下:
```java
public interface UserMapper extends BaseMapper<User> {
List<User> getUserList(Page<User> page, @Param("name") String name);
}
```
其中,`getUserList`方法中的`Page<User> page`参数就是分页查询的关键。我们可以通过`page.setCurrent()`方法设置当前页数,通过`page.setSize()`方法设置每页显示的记录数。
最后,在Service层中调用`getUserList`方法即可实现分页查询。
```java
public PageInfo<User> getUserList(Integer pageNum, Integer pageSize, String name) {
Page<User> page = new Page<>(pageNum, pageSize);
List<User> userList = userMapper.getUserList(page, name);
return new PageInfo<>(userList);
}
```
其中,`PageInfo`是一个分页查询结果的封装类,可以方便地获取总记录数、总页数等信息。
阅读全文