在ssm项目中使用mybatis的PageHepler分页插件
时间: 2023-08-08 09:10:01 浏览: 128
在SSM项目中使用MyBatis的PageHelper分页插件,需要按照以下步骤进行配置:
1. 在项目的pom.xml文件中引入PageHelper的依赖:
```xml
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.3.0</version>
</dependency>
```
2. 在MyBatis的配置文件中配置PageHelper插件:
```xml
<plugins>
<plugin interceptor="com.github.pagehelper.PageInterceptor">
<property name="helperDialect" value="mysql"/>
<property name="reasonable" value="true"/>
<property name="supportMethodsArguments" value="true"/>
<property name="params" value="pageNum=pageHelperStart;pageSize=pageHelperRows;"/>
</plugin>
</plugins>
```
其中,helperDialect属性指定数据库类型,reasonable属性指定是否启用合理化查询(即当查询页码小于1或大于总页数时,自动修正为1或总页数),supportMethodsArguments属性指定是否支持接口参数来传递分页参数,params属性指定接口中的参数名与PageHelper的参数名的对应关系。
3. 在接口方法中添加分页参数:
```java
public interface UserMapper {
List<User> findUsers(@Param("name") String name, @Param("pageHelperStart") int pageHelperStart, @Param("pageHelperRows") int pageHelperRows);
}
```
其中,pageHelperStart和pageHelperRows分别对应PageHelper插件的pageNum和pageSize参数。
4. 在Service层中调用分页方法:
```java
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public PageInfo<User> findUsers(String name, int pageNum, int pageSize) {
PageHelper.startPage(pageNum, pageSize);
List<User> userList = userMapper.findUsers(name, (pageNum - 1) * pageSize, pageSize);
return new PageInfo<>(userList);
}
}
```
其中,PageHelper.startPage()方法用于开启分页查询,第一个参数为当前页码,第二个参数为每页显示的记录数。在调用Mapper方法时,需要将分页参数传递给Mapper方法,这里通过计算得到分页查询的起始位置和记录数。最后,将查询结果封装成PageInfo对象返回即可。
阅读全文