在myBatis的配置文件中,加入如下配置:
<configuration>
<!-- 配置分页插件 -->
<plugins>
<plugin interceptor="com.github.pagehelper.PageHelper">
<!-- 指定使用的数据库是什么 -->
<property name="dialect" value="mysql"/>
</plugin>
</plugins>
</configuration>
PS:
该插件目前支持以下数据库的物理分页:
Oracle
Mysql
MariaDB
SQLite
Hsqldb
PostgreSQL
DB2
SqlServer(2005,2008)
Informix
H2
SqlServer2012
配置dialect
属性时,可以使用小写形式:
oracle
,mysql
,mariadb
,sqlite
,hsqldb
,postgresql
,db2
,sqlserver
,informix
,h2
,sqlserver2012
在4.0.0版本以后,dialect
参数可以不配置,系统能自动识别这里提到的所有数据库。
对于不支持的数据库,可以实现com.github.pagehelper.parser.Parser
接口,然后配置到dialect
参数中(4.0.2版本增加)。
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
</dependency>
1,通过PageHelper.startPage(page,rows)开始分页;
2,通过PageInfo获取分页结果;
@Test
public void testPageHelper() throws Exception{
//1,获得mapper代理对象
ApplicationContext application=new ClassPathXmlApplicationContext("classpath:spring/applicationContext-*.xml");
TbItemMapper itemMapper=application.getBean(TbItemMapper.class);
//2,设置分页
PageHelper.startPage(1, 30);
//3,执行查询
TbItemExample example=new TbItemExample();
List<TbItem>list=itemMapper.selectByExample(example);
//4,取得分页结果
PageInfo<TbItem> pageInfo=new PageInfo<TbItem>(list);
long total=pageInfo.getTotal();
System.out.println(total);
int pages=pageInfo.getPages();
System.out.println(pages);
int pageSize=pageInfo.getPageSize();
System.out.println(pageSize);
}