PageHelper分頁查詢

SpringBoot使用PageHelper分頁插件
使用mybatis進行分頁查詢
注意:
依賴:
<!--mybatis-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.4</version>
</dependency>
<!--mysql-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- SpringBoot/MyBatis使用PageHelper分頁控件 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.13</version>
</dependency>Controller控制器
/**
* Controller控制
*/
@RequestMapping("/book")
@RestController
public class BookController {
//注入業(yè)務(wù)層
@Autowired
private BookService bookService;
/**
* 獲取分頁數(shù)據(jù)
* @param pageNum 第幾頁
* @param pageSize 每頁顯示多少條
* @return 返回json數(shù)據(jù)
*/
@RequestMapping("/fenye/{pageNum}/{pageSize}")
@ResponseBody
public List<Book> fenye(@PathVariable("pageNum") int pageNum,@PathVariable("pageSize")int pageSize){
List<Book> list = bookService.getList(pageNum,pageSize);
return list;
}
}
使用RestFul風格進行數(shù)據(jù)訪問。
Service業(yè)務(wù)層接口:
/**
* 分頁查詢
* @param pageNum 第幾頁
* @param pageSize 每頁個數(shù)
* @return
*/
@Override
public List<Book> getList(int pageNum,int pageSize) {
//獲取sqlSession對象
SqlSession session = sqlSessionFactory.openSession();
//獲取mapper接口
BookDao mapper = session.getMapper(BookDao.class);
//分頁數(shù)據(jù)處理 第幾頁 每頁個數(shù)
PageHelper.startPage(2,5);
//執(zhí)行分頁查詢
Page<Book> books = mapper.getList();
//返回List結(jié)果對象,而不是返回Page對象
List<Book> list = new ArrayList<>();
System.out.println("第幾頁:"+books.getPageNum());
System.out.println("每頁數(shù)量:"+books.getPageSize());
System.out.println("總頁數(shù):"+books.getPages());
System.out.println("總記錄數(shù):"+books.getTotal());
for (Book book: books) {
System.out.println("查詢結(jié)果:"+book);
list.add(book);
}
return list;
}
使用mapper接口進行數(shù)據(jù)查詢,查詢之前先進行分頁處理。
業(yè)務(wù)接口實現(xiàn)的方法:
/**
* 業(yè)務(wù)層接口實現(xiàn)
*/
@Service
public class BookServiceImpl implements BookService {
//mybatis分頁需要使用到sqlSession對象
@Autowired
private SqlSessionFactory sqlSessionFactory;
/**
* 分頁查詢
* @param pageNum 第幾頁
* @param pageSize 每頁個數(shù)
* @return List集合
*/
@Override
public List<Book> getList(int pageNum,int pageSize) {
//獲取sqlSession對象
SqlSession session = sqlSessionFactory.openSession();
//獲取mapper接口
BookDao mapper = session.getMapper(BookDao.class);
//分頁數(shù)據(jù)處理 第幾頁 每頁個數(shù)
PageHelper.startPage(pageNum,pageSize);
//執(zhí)行分頁查詢
Page<Book> books = mapper.getList();
//返回List結(jié)果對象,而不是返回Page對象
List<Book> list = new ArrayList<>();
System.out.println("第幾頁:"+books.getPageNum());
System.out.println("每頁數(shù)量:"+books.getPageSize());
System.out.println("總頁數(shù):"+books.getPages());
System.out.println("總記錄數(shù):"+books.getTotal());
for (Book book: books) {
System.out.println("查詢結(jié)果:"+book);
list.add(book);
}
return list;
}
}
Dao層接口:
/**
* 圖書服務(wù)接口
*/
public interface BookService {
public Book findById(Book book);
public List<Book> findAll();
public Integer addBook(Book book);
//分頁查詢
public List<Book> getList(int pageNum,int pageSize);
}
mapper.xml文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--namespace綁定mapper接口(重要!!!)-->
<mapper namespace="com.hbm.dao.BookDao">
<!--分頁查詢-->
<select id="getList" resultType="book">
select * from Book
</select>
</mapper>
測試結(jié)果:


提示:
本次測試環(huán)境為SpringBoot+mybatis。
總結(jié):
注意一下流程就好了,Dao層的接口使用的是分頁插件的Page對象,返回的數(shù)如果是List集合,可以在業(yè)務(wù)層取出來再返回給視圖層。
評論
圖片
表情
