首先是写的代码
lambda表达式写法:
@Service
public class SectionService {
@Autowired
private SectionMapper sectionMapper;
public List<Section> getLimit(int start,int limit){
PageInfo<Section> pageInfo = PageHelper.startPage(start, limit).doSelectPageInfo(() -> sectionMapper.findAll());
return pageInfo.getList();
}
}
来看一下一些主要类
先看Iselect类
public interface ISelect {
void doSelect();
}
再来看一下Page类
public class Page<E> extends ArrayList<E> implements Closeable {
public <E> PageInfo<E> doSelectPageInfo(ISelect select) {
select.doSelect();
return this.toPageInfo();
}
public PageInfo<E> toPageInfo() {
PageInfo<E> pageInfo = new PageInfo(this);
return pageInfo;
}
}
我看到这行代码就很疑惑,返回void,并没有赋值,
怎么this(也就是这个page类)中就包含了查询到的结果呢
先了解一下这个
首来看一下PageMethod类中的部分代码
public abstract class PageMethod {
//PageMethod 类中含了一个本地线程LOCAL_PAGE
//Threadlocal而是一个线程内部的存储类,可以在指定线程内存储数据,数据存储以后,只有指定线程可以得到存储数据
protected static final ThreadLocal<Page> LOCAL_PAGE = new ThreadLocal();
}
protected static void setLocalPage(Page page)