要在Spring MVC中使用PageHelper进行分页,你需要完成以下几个步骤:
pom.xml
文件中添加以下依赖:<dependency>
<groupId>com.github.pagehelpergroupId>
<artifactId>pagehelper-spring-boot-starterartifactId>
<version>1.3.0version>
dependency>
application.properties
或application.yml
)中,配置PageHelper的属性。例如,你可以指定数据库方言、分页插件的参数等。以下是一个示例的application.properties
配置:# 数据库方言
pagehelper.helperDialect=mysql
# 是否进行分页合理化
pagehelper.reasonable=true
# 是否支持通过Mapper接口参数来传递分页参数
pagehelper.supportMethodsArguments=true
PageHelper.startPage()
来开启分页功能,然后执行查询操作。以下是一个示例:import com.github.pagehelper.PageHelper;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface YourMapper {
List<YourEntity> queryEntities();
default List<YourEntity> queryEntitiesWithPage(int pageNum, int pageSize) {
PageHelper.startPage(pageNum, pageSize);
return queryEntities();
}
}
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class YourController {
@Autowired
private YourMapper yourMapper;
@GetMapping("/entities")
public String getEntities(int pageNum, int pageSize, Model model) {
model.addAttribute("entities", yourMapper.queryEntitiesWithPage(pageNum, pageSize));
return "entities";
}
}
在上述示例中,getEntities()
方法接收pageNum
和pageSize
作为参数,调用Mapper接口的分页查询方法,并将查询结果添加到Model中,然后返回一个视图名。
完成上述步骤后,你就可以在Spring MVC中使用PageHelper进行分页查询了。记得在前端视图中展示分页导航条和处理分页参数。
如果你不使用Spring Boot,而是使用传统的Spring MVC框架,你可以按照以下步骤来实现PageHelper的分页功能:
pom.xml
文件中添加以下依赖:<dependency>
<groupId>com.github.pagehelpergroupId>
<artifactId>pagehelperartifactId>
<version>5.2.1version>
dependency>
applicationContext.xml
)中,配置PageHelper的属性。以下是一个示例的配置:<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
bean>
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
bean>
<bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg index="0" ref="sqlSessionFactory" />
bean>
<bean id="pageHelper" class="com.github.pagehelper.PageHelper">
<property name="properties">
<value>
dialect=mysql
reasonable=true
supportMethodsArguments=true
value>
property>
bean>
在上述配置中,我们配置了数据源、SqlSessionFactory和SqlSessionTemplate,然后创建了一个PageHelper的Bean,并设置了PageHelper的属性。
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="plugins">
<array>
<ref bean="pageHelper" />
array>
property>
bean>
PageHelper.startPage()
来开启分页功能,然后执行查询操作。以下是一个示例:import com.github.pagehelper.PageHelper;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface YourMapper {
List<YourEntity> queryEntities();
default List<YourEntity> queryEntitiesWithPage(int pageNum, int pageSize) {
PageHelper.startPage(pageNum, pageSize);
return queryEntities();
}
}
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class YourController {
@Autowired
private YourMapper yourMapper;
@GetMapping("/entities")
public String getEntities(int pageNum, int pageSize, Model model) {
model.addAttribute("entities", yourMapper.queryEntitiesWithPage(pageNum, pageSize));
return "entities";
}
}
在上述示例中,getEntities()
方法接收pageNum
和pageSize
作为参数,调用Mapper接口的分页查询方法,并将查询结果添加到Model中,然后返回一个视图名。
完成上述步骤后,你就可以在Spring MVC中使用PageHelper进行分页查询了。记得在前端视图中展示分页导航条和处理分页参数。