1. 程式人生 > >mybatis使用PageHelper分頁外掛原理

mybatis使用PageHelper分頁外掛原理

<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>
//獲取第1頁,10條內容,預設查詢總數count
PageHelper.startPage(1, 10);
//緊跟著的第一個select方法會被分頁
List<Country> list = countryMapper.selectIf(1);
//分頁時,實際返回的結果list型別是Page<E>,如果想取出分頁資訊,需要強制轉換為Page<E>
Page page = (Page)list;
page.getPageNum(); page.getPageSize(); page.getPages(); page.getTotal(); page.size(); assertEquals(182, ((Page) list).getTotal());

3、重要提示:

需要注意什麼時候會導致不安全的分頁?

4、PageHelper分頁實現原理說明

//設定分頁資訊儲存到threadlocal中
PageHelper.startPage(1, 10);
//緊跟著的第一個select方法會被分頁,contryMapper會被PageInterceptor截攔,截攔器會從threadlocal中取出分頁資訊,把分頁資訊加到sql語句中,實現了分頁查旬
List<Country> list = countryMapper.selectIf(1);