使用pagehelper我们首先在pom.xml里面引入相关依赖
<!-- https://mvnrepository.com/artifact/com.github.pagehelper/pagehelper -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.3.3</version>
</dependency>
当然你想使用其他的pageHelper版本可以点此搜索
点我选择pageHelper版本https://mvnrepository.com/artifact/com.github.pagehelper/pagehelper
其次,在你的spring配置文件中设置pagehelper相关配置(在SqlSessionFactoryBean内就行)
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="typeAliasesPackage" value="com.experience.entity"/>
<property name="plugins">
<array>
<!-- 传入插件的对象 -->
<bean class="com.github.pagehelper.PageInterceptor">
<property name="properties">
<props>
<prop key="helperDialect">mysql</prop>
<prop key="reasonable">true</prop>
</props>
</property>
</bean>
</array>
</property>
</bean>
dao
下面我们编写一个dao层的接口,例如我们想查询出book表中所有的图书记录
package com.experience.dao;
import com.experience.entity.Book;
import java.util.List;
public interface Book_all_dao {
List<Book> getBookList();
}
XML配置
只注意几点就行
1.dao层接口和xml文件名字得相同
2.namespace是你dao层接口的路径
3.返回值resultType是你每一个从数据库里面查询出来的类型,我要查询所有的图书记录存在图书类集合里,那我的resultType类型每一个就是实体类包路径下的那个实体类
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.experience.dao.Book_all_dao">
<sql id="getBook">
select * from book
</sql>
<select id="getBookList" resultType="com.experience.entity.Book">
<include refid="getBook" />
</select>
</mapper>
Service
建立一个service层的接口用来实现在service层实现对于dao层查询的调用
package com.experience.service;
import com.experience.entity.Book;
import com.github.pagehelper.PageInfo;
import java.util.List;
public interface Book_all_service {
PageInfo<Book> getAllBooks(int pageNum,int pageSize);
}
现在我们在service层下面再建一个impl包去实现这个接口
package com.experience.service.impl;
import com.experience.dao.Book_all_dao;
import com.experience.entity.Book;
import com.experience.service.Book_all_service;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class Book_all_service_impl implements Book_all_service {
@Autowired
Book_all_dao book_all_dao;
@Override
public PageInfo<Book> getAllBooks(int pageNum,int pageSize) {
PageHelper.startPage(pageNum,pageSize);
List<Book> book = book_all_dao.getBookList();
PageInfo<Book> pageInfo = new PageInfo<>(book);
return pageInfo;
}
}
现在service层的pageInfo就已经返回了分页好的数据
Controller
package com.experience.controller;
import com.experience.entity.Book;
import com.experience.service.Book_all_service;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import java.util.List;
@Controller
public class Book_all_Controller {
@Autowired
Book_all_service book_all_service;
@RequestMapping(value = "/book")
public void sendBook(int pageNum, int pageSize) {
PageInfo<Book> info = book_all_service.getAllBooks(pageNum,pageSize);
//获取分页结果后打印到控制台
for(Book book : info.getList()) {
System.out.println(book.toString());
}
}
}
前端(超简陋测试)
1.
2.
3.(不必紧张,我的sql里面第一行记录id就是3,别迷惑为什么是3开始)
现在整个pageHelper就已经完成了,根据你的实际需要在学会后进行改进代码吧,我主要就是把整个逻辑带你走一遍