PageHelper使用

Posted M87星云

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PageHelper使用相关的知识,希望对你有一定的参考价值。

PageHelper是国内非常优秀的一款开源的mybatis分页插件,它支持基本主流与常用的数据库,例如mysql、 oracle、mariaDB、DB2、SQLite、Hsqldb等。

1、下载了解

在 github 的项目地址:https://github.com/pagehelper/Mybatis-PageHelper

在 gitosc 的项目地址:http://git.oschina.net/free/Mybatis_PageHelper

 

2、这里介绍maven使用方式

在pom.xml文件中添加:

 <!--分页插件-->
<dependency>
        <groupId>com.github.pagehelper</groupId>
        <artifactId>pagehelper</artifactId>
        <version>5.1.3</version>
</dependency>

 

3、配置 MyBatis方式或Spring 配置者方式,二选一

在 MyBatis 配置 xml 中配置拦截器插件

<!--
    plugins在配置文件中的位置必须符合要求,否则会报错,顺序如下:
    properties?, settings?,
    typeAliases?, typeHandlers?,
    objectFactory?,objectWrapperFactory?,
    plugins?,
    environments?, databaseIdProvider?, mappers?
-->
<plugins>
    <!-- com.github.pagehelper为PageHelper类所在包名 -->
    <plugin interceptor="com.github.pagehelper.PageInterceptor">
        <!-- 使用下面的方式配置参数,后面会有所有的参数介绍 -->
        <property name="param1" value="value1"/>
    </plugin>
</plugins>

 

在 Spring 配置文件中配置拦截器插件

   <!--spring 和 mybatis整合-->
    <bean id="sessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="druidDataSource"></property>
        <property name="typeAliasesPackage" value="com.boat.pojo"></property>
        <!-- oralce配置,分页插件 -->
        <property name="plugins">
            <array>
                <bean class="com.github.pagehelper.PageInterceptor">
                    <property name="properties">
                        <props>
                 <!--mysql 或者 oracle 配置--> <prop key="helperDialect">oracle</prop> <prop key="reasonable">true</prop> </props> </property> </bean> </array> </property> </bean>

 

4、使用

dao层:

public interface ProductDao {

    /**
     * 查询所有商品
     * @return
     */
    @Select("select * from product")
    public List<Product> selectAll();

}

service层:

@Service
public class ProductServiceImpl implements ProductService{

    @Autowired
    private ProductDao productDao;

    @Override
    public List<Product> findAll(Integer page,Integer size) {
        PageHelper.startPage(page, size);
        return productDao.selectAll();
    }

}

controller层:

@Controller
@RequestMapping("/product")
public class ProductController {

    @Autowired
    private ProductService productService;

    @RequestMapping("/findAll")
    public ModelAndView findAll(@RequestParam(name = "page",required = true,defaultValue = "1") Integer page,
                                @RequestParam(name = "size",required = true,defaultValue = "5") Integer size){
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.setViewName("product-list");
        List<Product> list = productService.findAll(page, size);
        PageInfo pageInfo = new PageInfo(list);
        modelAndView.addObject("pageInfo",pageInfo);
        return modelAndView;
    }

}

 

这里使用oracle数据,分页查询结果近看日志:

 

以上是关于PageHelper使用的主要内容,如果未能解决你的问题,请参考以下文章

关于在SSM框架下使用PageHelper

MyBatis分页插件:比PageHelper都要简单,使用很灵活,目前支持Oracle和MySQL

MyBatis-----7.pageHelper分页助手

分页插件PageHelper

mybatis pagehelper 怎么求出总页数

SpringBoot使用Mybatis-PageHelper