mybatis 让分页更加简单 PageHelper

PageHelper是国内非常优秀的一款开源的mybatis分页插件,它支持基本主流与常用的数据库,例 
如mysql、oracle、mariaDB、DB2、SQLite、Hsqldb等。 
本项目在 github 的项目地址:https://github.com/pagehelper/Mybatis-PageHelper
本项目在 gitosc 的项目地址:http://git.oschina.net/free/Mybatis_PageHelper

 

引入jar包

你可以从下面的地址中下载最新版本的 jar 包 

https://oss.sonatype.org/content/repositories/releases/com/github/pagehelper/pagehelper/
http://repo1.maven.org/maven2/com/github/pagehelper/pagehelper/ 

由于使用了sql 解析工具,你还需要下载 jsqlparser.jar: 
http://repo1.maven.org/maven2/com/github/jsqlparser/jsqlparser/0.9.5/  

 

搭建步骤

pom文件

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

 

插件配置

在 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 配置文件中配置拦截器插件 

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
  <!-- 注意其他配置 -->
  <property name="plugins">
    <array>
      <bean class="com.github.pagehelper.PageInterceptor">
        <property name="properties">
          <!--使用下面的方式配置参数,一行配置一个 -->
          <value>             params=value1
          </value>
        </property>
      </bean>     </array>
  </property>
</bean>

 零配置方案配置拦截器

@Bean
    public SqlSessionFactoryBean getSqlSessionFactoryBean(DataSource da) {
        SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
        sqlSessionFactoryBean.setDataSource(da);

        //设置分页的拦截器
        PageInterceptor pageInterceptor = new PageInterceptor();
        //创建插件需要的参数集合
        Properties properties = new Properties();
        //配置数据库方言 为oracle
        properties.setProperty("helperDialect", "oracle");
        //配置分页的合理化数据
        properties.setProperty("reasonable", "true");
        pageInterceptor.setProperties(properties);
        //将拦截器设置到sqlSessionFactroy中
        sqlSessionFactoryBean.setPlugins(new Interceptor[] {pageInterceptor});

        return sqlSessionFactoryBean;
    }

使用方法

@Override
public List<TbClass> selectByPage(Integer pageNo, Integer pageSize) {
		if (pageSize == null) pageSize = 5;
		if (pageNo == null) {
			pageNo = 1;	
		}
// 重点是这句代码
        PageHelper.startPage(pageNo, pageSize);

		List<TbClass> list = classMapper.selectByPage();
 		return list;
}

PageHelper使用总结 
PageHelper使用只需要三步 
1.导入jar包(maven工程直接引入对应坐标)

2.配置插件给mybaitis(和spring整合后,可以直接将插件属性配置给sqlsessinoFactoryBean,),配置好后工厂在创建sqlSession时候会为我们载入配置

3.使用时调用方法,常见方式是,在service中,执行dao查询对应查询方法之前,调用分页的静态方法PageHelper.startPage
 

分页插件其他方法使用介绍

https://github.com/pagehelper/Mybatis-PageHelper/blob/master/wikis/zh/HowToUse.md

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值