分頁查詢案例
阿新 • • 發佈:2020-10-26
分頁查詢案例
1、實體類
1.1、頁面實體類
package com.yl.bean; import lombok.Data; import lombok.NoArgsConstructor; import java.util.List; /** * 圖書頁面實體類 */ @Data @NoArgsConstructor public class PageBook { private int pageCode;//當前頁碼 private int pageSize;//每頁資料條數 private int totalPage;//總頁數 private int totalRecord;//總資料條數 private List<Book> bookList;//用來儲存查詢出來的結果集 }
1.2、圖書實體類
package com.yl.bean; import lombok.Data; import lombok.NoArgsConstructor; import java.io.Serializable; import java.util.Date; /** * 圖書實體類 */ @Data @NoArgsConstructor public class Book implements Serializable { private Integer id; private String name; private String author; private Date date; private Float price; }
2、業務層
2.1、業務層介面
package com.yl.service;
import com.yl.bean.Book;
import com.yl.bean.PageBook;
import java.util.List;
/**
* 圖書業務層介面
*/
public interface IBookService {
/**
* 分頁查詢
*/
PageBook queryByPage(int pageCode,int pageSize);
}
2.2、業務層介面實現類
package com.yl.service.impl; import com.yl.bean.Book; import com.yl.bean.PageBook; import com.yl.dao.IBookDao; import com.yl.service.IBookService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; /** * 圖書業務層介面實現類 */ @Service("bookService") public class IBookServiceImpl implements IBookService { @Autowired private IBookDao bookDao; /** * 分頁查詢 */ @Override public PageBook queryByPage(int pageCode,int pageSize) { PageBook pageBook=new PageBook(); //查詢起始位置 int start=(pageCode-1)*pageSize; //每次查詢的資料條數 int ps=pageSize; //呼叫持久層分頁查詢方法 List<Book> bookList=bookDao.queryByPage(start,ps); //查詢資料庫圖書總數量 int bookCount=bookDao.queryDataCount(); //計算總頁數 int pageCount=bookCount%ps==0?bookCount/ps:bookCount/ps+1; pageBook.setBookList(bookList); pageBook.setPageCode(pageCode); pageBook.setTotalPage(pageCount); pageBook.setPageSize(pageSize); return pageBook; } }
3、持久層
3.1、持久層介面
package com.yl.dao;
import com.yl.bean.Book;
import com.yl.bean.PageBook;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 圖書持久層介面
*/
public interface IBookDao {
/**
* 分頁查詢
*/
List<Book> queryByPage(@Param("pageCode") int pageCode, @Param("pageSize") int pageSize);
/**
* 查詢資料庫表中圖書總量
*/
int queryDataCount();
}