PageHelper是Mybatis的一個分頁插件,非常的好用!
PageHelper的使用很簡單,只需要在Maven中添加pagehelper這個依賴就可以了。
Maven的依賴如下:
//注:這裏我是用springBoot版的!也可以使用其它版本的。
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.3</version>
</dependency
第一種,在application.properties或application.yml添加
pagehelper:
helperDialect: mysql
offsetAsPageNum: true
rowBoundsWithCount: true
reasonable: false
第二種,在mybatis.xml配置中添加
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<!-- 掃描mapping.xml文件 -->
<property name="mapperLocations" value="classpath:mapper/*.xml"></property>
<!-- 配置分頁插件 -->
<property name="plugins">
<array>
<bean class="com.github.pagehelper.PageHelper">
<property name="properties">
<value>
helperDialect=mysql
offsetAsPageNum=true
rowBoundsWithCount=true
reasonable=false
</value>
</property>
</bean>
</array>
</property>
</bean>
第三種,在代碼中添加,使用@Bean註解在啓動程序的時候初始化。
@Bean
public PageHelper pageHelper(){
PageHelper pageHelper = new PageHelper();
Properties properties = new Properties();
//數據庫
properties.setProperty("helperDialect", "mysql");
//是否將參數offset作爲PageNum使用
properties.setProperty("offsetAsPageNum", "true");
//是否進行count查詢
properties.setProperty("rowBoundsWithCount", "true");
//是否分頁合理化
properties.setProperty("reasonable", "false");
pageHelper.setProperties(properties);
}
設置完PageHelper 之後,使用的話,只需要在查詢的sql前面添加PageHelper.startPage(pageNum,pageSize);,如果是想知道總數的話,在查詢的sql語句後買呢添加 page.getTotal()就可以了。
//代碼示例:
public List<T> findByListEntity(T entity) {
List<T> list = null;
try {
Page<?> page =PageHelper.startPage(1,2);
System.out.println(getClassName(entity)+"設置第一頁兩條數據!");
list = getMapper().findByListEntity(entity);
System.out.println("總共有:"+page.getTotal()+"條數據,實際返回:"+list.size()+"兩條數據!");
} catch (Exception e) {
logger.error("查詢"+getClassName(entity)+"失敗!原因是:",e);
}
return list;
}