mybatisplusfe分页查询
时间: 2024-05-08 08:13:59 浏览: 91
Mybatis-Plus 是 Mybatis 的增强工具,其中包含了一些实用的功能,其中就包括了分页查询。Mybatis-Plus 提供了两种分页查询的方式:基于拦截器和基于 XML 配置。其中,基于拦截器的方式使用起来比较方便,下面我将为您介绍一下基于拦截器的分页查询。
Mybatis-Plus 的分页查询主要是利用了其自带的 Pagination 对象来实现。使用时,只需要在进行查询时,将 Pagination 对象传入方法中即可。具体操作步骤如下:
1. 创建一个继承自 com.baomidou.mybatisplus.extension.plugins.pagination.Page 的类,用于存储分页信息。
2. 在需要进行分页查询的方法中,使用 Page 对象进行分页参数的设置。
3. 在 Mybatis-Plus 的配置文件中添加分页插件。
4. 在 mapper 接口中定义需要进行分页查询的方法,并使用 @Param 注解将 Page 对象传入方法中。
5. 在对应的 mapper.xml 文件中编写 SQL 语句,并使用 Mybatis-Plus 提供的 SQL 片段进行分页查询。
示例代码如下:
Java代码:
```java
public class UserPage extends Page<User> {
private static final long serialVersionUID = 1L;
}
```
```java
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public IPage<User> getUserListByPage(Integer pageNum, Integer pageSize) {
UserPage page = new UserPage(pageNum, pageSize);
return userMapper.selectPage(page, null);
}
}
```
XML配置:
```xml
<plugins>
<plugin interceptor="com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor">
<property name="limit" value="100"/>
</plugin>
</plugins>
```
Mapper接口:
```java
public interface UserMapper extends BaseMapper<User> {
List<User> selectUserList(@Param("page") Page<User> page);
}
```
Mapper.xml文件:
```xml
<select id="selectUserList" resultMap="userMap">
select * from user
<where>
<if test="username != null and username != ''">
and username like concat('%',#{username},'%')
</if>
</where>
order by create_time desc
<if test="page != null">
limit #{page.offset},#{page.size}
</if>
</select>
```
阅读全文