分页查询案例

分页查询案例

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();

}

记得快乐
原文地址:https://www.cnblogs.com/Y-wee/p/13881295.html