關於分頁插件PageHelper
阿新 • • 發佈:2017-07-30
help intercept eid 設置 map 感受 page nds eal
上課的時候學習了分頁插件,感受到了它的強大,這裏總結如下:
1、首先在spring配置文件中引入依賴jar包:
<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>3.7.5</version> </dependency>
2、配置分頁攔截器
PageHelper的基於攔截器的原理實現的,攔截器的配置有兩種方法:
一是在mybatis的配置文件中配置
<plugins> <!-- com.github.pagehelper為PageHelper類所在包名 --> <plugin interceptor="com.github.pagehelper.PageHelper"> <property name="dialect" value="mysql"/> <!-- 該參數默認為false --> <!-- 設置為true時,會將RowBounds第一個參數offset當成pageNum頁碼使用 --> <!-- 和startPage中的pageNum效果一樣--> <property name="offsetAsPageNum" value="true"/> <!-- 該參數默認為false --> <!-- 設置為true時,使用RowBounds分頁會進行count查詢 --> <property name="rowBoundsWithCount" value="true"/> <!-- 設置為true時,如果pageSize=0或者RowBounds.limit = 0就會查詢出全部的結果 --> <!-- (相當於沒有執行分頁查詢,但是返回結果仍然是Page類型) <property name="pageSizeZero" value="true"/>--> <!-- 3.3.0版本可用 - 分頁參數合理化,默認false禁用 --> <!-- 啟用合理化時,如果pageNum<1會查詢第一頁,如果pageNum>pages會查詢最後一頁 --> <!-- 禁用合理化時,如果pageNum<1或pageNum>pages會返回空數據 --> <property name="reasonable" value="true"/> <!-- 3.5.0版本可用 - 為了支持startPage(Object params)方法 --> <!-- 增加了一個`params`參數來配置參數映射,用於從Map或ServletRequest中取值 --> <!-- 可以配置pageNum,pageSize,count,pageSizeZero,reasonable,不配置映射的用默認值 --> <!-- 不理解該含義的前提下,不要隨便復制該配置 <property name="params" value="pageNum=start;pageSize=limit;"/> --> </plugin> </plugins>
需要註意的是對於<plugins>在mybatis-config.xml文件中的位置, http://mybatis.org/dtd/mybatis-3-config.dtd 中指定的順序,否則會出現錯誤
<!ELEMENT configuration (properties?, settings?, typeAliases?, typeHandlers?,
objectFactory?, objectWrapperFactory?, plugins?, environments?, databaseIdProvider?, mappers?)>
另一個是直接整合在spring的配置文件中進行
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <property name="mapperLocations"> <array> <value>classpath:config/mapper/*.xml</value> </array> </property> <property name="typeAliasesPackage" value="com.test.pojo"/> <property name="plugins"> <array> <bean class="com.github.pagehelper.PageHelper"> <property name="properties"> <value> dialect=mysql </value> </property> </bean> </array> </property> </bean>
配置已經完成,需要的時候直接在service層中引用即可
關於分頁插件PageHelper