<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          PageHelper分頁查詢

          共 8939字,需瀏覽 18分鐘

           ·

          2021-04-25 21:45

          SpringBoot使用PageHelper分頁插件

          使用mybatis進行分頁查詢


          注意:

          可以看到Page本身也是個ArrayList,里面還包含了分頁的各項參數(shù)。在調(diào)用分頁查詢時要先設(shè)置分頁前提,比如,每頁兩行,查詢第一頁:

          PageHelper.startPage(1,2);

          在你需要進行分頁的 MyBatis 查詢方法前調(diào)用 PageHelper.startPage 方法即可,緊跟在這個方法后的第一個MyBatis 查詢方法會被進行分頁。

          Page<Book> bookss = mapper.getList();


          依賴

                  <!--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ù)層取出來再返回給視圖層。




          瀏覽 63
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  久操网在线视频 | a 视频在线 | 91AV在线电影 | 国产在线成人视频 | av三级片一区 |