第一步:先在pom.xml中添加如下
<properties>
<pagehelper-version>5.0.0</pagehelper-version>
<jsqlparser-version>0.9.5</jsqlparser-version>
</properties>
<!--pagehelper-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>${pagehelper-version}</version>
</dependency>
<!-- pagehelper的依赖包:jsqlparser -->
<dependency>
<groupId>com.github.jsqlparser</groupId>
<artifactId>jsqlparser</artifactId>
<version>${jsqlparser-version}</version>
</dependency>
第二步:在spring-mybatis整合xml中添加如下
(主要是在sqlSessionFactory里面注入一个plugins,然后配置pageHelper的信息即可)
<!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<!-- 自动扫描mapping.xml文件 -->
<property name="mapperLocations" value="classpath*:mapping/**/*.xml"></property>
<!--pageHelper-->
<property name="plugins">
<array>
<bean class="com.github.pagehelper.PageInterceptor">
<property name="properties">
<!--使用下面的方式配置参数,一行配置一个 -->
<value>
helperDialect=postgresql
reasonable=true
supportMethodsArguments=true
params=count=countSql
autoRuntimeDialect=true
</value>
</property>
</bean>
</array>
</property>
</bean>
第三步:在controller中
@RequestMapping("pageHelperTest")
public void getList(){
userService.test(); //调用service层的方法
}
第四步:在service中使用pageHelper
public void test(){
PageHelper.startPage(1, 5); //第一个参数代表当前页码 第二个参数代表每页多少条记录数
ArrayList<Users> list = userDao.getUserList();
PageInfo<Users> page = new PageInfo<Users>(list);
System.out.println("总数量:" + page.getTotal());
System.out.println("当前页查询记录:" + page.getList().size());
System.out.println("当前页码:" + page.getPageNum());
System.out.println("每页显示数量:" + page.getPageSize());
System.out.println("总页:" + page.getPages());
}
第五步:在dao层,直接写一个mapper接口,然后写一个相应的mapper.xml
①usermapper.java
ArrayList<Users> getUserList();
②usermapper.xml (可以看到在xml里面是直接查询所有记录,而没有limit关键字的,至于分页的操作,pageHelper已经帮我们做了)
<select id="getUserList" resultType="com.hanpeng.entity.Users">
select * from tb_users
</select>