• 使用PageHelper进行分页


    在这里插入图片描述

    1. 使用Spring Boot

    要在Spring MVC中使用PageHelper进行分页,你需要完成以下几个步骤:

    1. 添加PageHelper依赖:在你的项目中添加PageHelper的Maven或Gradle依赖。例如,如果你使用Maven,可以在pom.xml文件中添加以下依赖:
    <dependency>
        <groupId>com.github.pagehelpergroupId>
        <artifactId>pagehelper-spring-boot-starterartifactId>
        <version>1.3.0version>
    dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    1. 配置PageHelper:在Spring MVC的配置文件(通常是application.propertiesapplication.yml)中,配置PageHelper的属性。例如,你可以指定数据库方言、分页插件的参数等。以下是一个示例的application.properties配置:
    # 数据库方言
    pagehelper.helperDialect=mysql
    # 是否进行分页合理化
    pagehelper.reasonable=true
    # 是否支持通过Mapper接口参数来传递分页参数
    pagehelper.supportMethodsArguments=true
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    1. 在Mapper接口中使用PageHelper:在你的Mapper接口中,使用PageHelper提供的静态方法来实现分页。例如,你可以在查询方法中调用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();
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    1. 在Controller中使用分页查询:在Spring MVC的Controller中,调用Mapper接口中定义的分页查询方法,并将结果传递给前端视图进行展示。以下是一个示例:
    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";
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    在上述示例中,getEntities()方法接收pageNumpageSize作为参数,调用Mapper接口的分页查询方法,并将查询结果添加到Model中,然后返回一个视图名。

    完成上述步骤后,你就可以在Spring MVC中使用PageHelper进行分页查询了。记得在前端视图中展示分页导航条和处理分页参数。

    2. 不使用Spring Boot的实现

    如果你不使用Spring Boot,而是使用传统的Spring MVC框架,你可以按照以下步骤来实现PageHelper的分页功能:

    1. 添加PageHelper依赖:在你的项目中添加PageHelper的Maven或Gradle依赖,可以在Maven的pom.xml文件中添加以下依赖:
    <dependency>
        <groupId>com.github.pagehelpergroupId>
        <artifactId>pagehelperartifactId>
        <version>5.2.1version>
    dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    1. 配置PageHelper:在Spring的配置文件(例如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>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    在上述配置中,我们配置了数据源、SqlSessionFactory和SqlSessionTemplate,然后创建了一个PageHelper的Bean,并设置了PageHelper的属性。

    1. 配置MyBatis拦截器:由于PageHelper是一个MyBatis的拦截器,我们需要将PageHelper添加到MyBatis的拦截器链中。在上面的配置文件中,我们可以在SqlSessionFactory中添加以下配置:
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
        
        <property name="plugins">
            <array>
                <ref bean="pageHelper" />
            array>
        property>
    bean>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    1. 在Mapper接口中使用PageHelper:在你的Mapper接口中,使用PageHelper提供的静态方法来实现分页。例如,你可以在查询方法中调用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();
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    1. 在Controller中使用分页查询:在Spring MVC的Controller中,调用Mapper接口中定义的分页查询方法,并将结果传递给前端视图进行展示。以下是一个示例:
    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";
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    在上述示例中,getEntities()方法接收pageNumpageSize作为参数,调用Mapper接口的分页查询方法,并将查询结果添加到Model中,然后返回一个视图名。

    完成上述步骤后,你就可以在Spring MVC中使用PageHelper进行分页查询了。记得在前端视图中展示分页导航条和处理分页参数。

  • 相关阅读:
    引擎上新|卡片焕新升级,信息高效呈现
    SSM+酒店管理系统的设计和实现 毕业设计-附源码260839
    Go:Signal信号量的简介与实践(优雅的退出)
    接口自动化测试之 —— requests模块详解!
    【CSDN攻略】互动选题及目标
    3招学会TikTok电商选品,速看
    【测试工具系列】压测用Jmeter还是LoadRunner?还是其他?
    arthas 线上更新代码不生效的问题Memory compiler error, exception message: Compilation Error
    看到那些自以为是,却实际上很愚蠢的家长。
    c# 正则表达式
  • 原文地址:https://blog.csdn.net/ttyy1112/article/details/133137423