mybatis使用PageHelper分頁外掛原理
阿新 • • 發佈:2018-12-23
<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);