Mybatis Plus 多表关联分页查询(亲测有效)

Posted 小志的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mybatis Plus 多表关联分页查询(亲测有效)相关的知识,希望对你有一定的参考价值。

一、mybatis-plus配置类

/**
 * mybatis-plus配置
 */
@Configuration
public class MybatisPlusConfig 

    /**
     * 分页插件
     */
    @Bean
    public PaginationInterceptor paginationInterceptor() 
        return new PaginationInterceptor();
    


二、分页工具类

public class PageUtils implements Serializable 
	private static final long serialVersionUID = 1L;
	/**
	 * 总记录数
	 */
	private int totalCount;
	/**
	 * 每页记录数
	 */
	private int pageSize;
	/**
	 * 总页数
	 */
	private int totalPage;
	/**
	 * 当前页数
	 */
	private int currPage;
	/**
	 * 列表数据
	 */
	private List<?> list;
	
	/**
	 * 分页
	 * @param list        列表数据
	 * @param totalCount  总记录数
	 * @param pageSize    每页记录数
	 * @param currPage    当前页数
	 */
	public PageUtils(List<?> list, int totalCount, int pageSize, int currPage) 
		this.list = list;
		this.totalCount = totalCount;
		this.pageSize = pageSize;
		this.currPage = currPage;
		this.totalPage = (int)Math.ceil((double)totalCount/pageSize);
	

	/**
	 * 分页
	 */
	public PageUtils(IPage<?> page) 
		this.list = page.getRecords();
		this.totalCount = (int)page.getTotal();
		this.pageSize = (int)page.getSize();
		this.currPage = (int)page.getCurrent();
		this.totalPage = (int)page.getPages();
	

	public int getTotalCount() 
		return totalCount;
	

	public void setTotalCount(int totalCount) 
		this.totalCount = totalCount;
	

	public int getPageSize() 
		return pageSize;
	

	public void setPageSize(int pageSize) 
		this.pageSize = pageSize;
	

	public int getTotalPage() 
		return totalPage;
	

	public void setTotalPage(int totalPage) 
		this.totalPage = totalPage;
	

	public int getCurrPage() 
		return currPage;
	

	public void setCurrPage(int currPage) 
		this.currPage = currPage;
	

	public List<?> getList() 
		return list;
	

	public void setList(List<?> list) 
		this.list = list;
	
	

三、多表关联分页查询实现代码

1、Controller层

  /**
     * 分页查询
     * @param params 查询条件
     */
    @RequestMapping("/list")
    @RequiresPermissions("or:orde:list")
    public R list(@RequestParam Map<String,Object> params)
        PageUtils page=orderFormService.queryPage(params);
        return R.ok().put("page",page);
    

2、Service 层

 //分页查询
 PageUtils queryPage(Map<String, Object> params);

3、Service 实现层

 //分页查询
 @Override
 public PageUtils queryPage(Map<String, Object> params)
     String id= (String) params.get("id");
     IPage<OrEntity> page = new Query<OrEntity>().getPage(params);
     List<OrEntity> list=orderFormDao.selectList(page,id);
     page.setRecords(list);
     return new PageUtils(page);
 

4、Dao 层

  //分页查询
  List<OrEntity> selectList(IPage<OrEntity> page,@Param("id") String id);

5、XML格式的mapper文件

 <!--分页查询-->
 <select id="selectList"  resultMap="BaseResultMap"  parameterType="com.rf.springcloud.cloudsystem.modules.oder.entity.OrderFormEntity">
     select
    	 a.*,b.*
     from  a
     left join b on  a.OR_NUM =b.OR_NUM
     <where>
         <if test="id!= null and id!= ''">
             a.ID = #id
         </if>
     </where>
 </select>

以上是关于Mybatis Plus 多表关联分页查询(亲测有效)的主要内容,如果未能解决你的问题,请参考以下文章

MyBatis Plus 实现多表分页查询

MyBatis-Plus - 实现多表分页查询

mybatis-plus多表联合分页查询简便方式

mybatis-plus分页查询

mybatis-plus连表分页查

Mybatis-plus之分页泛型转换