分页类的封装
这边写个分页类中对任意对象需要分页做的分页封装,涉及到反射,这边直接贴出方法;以便后面工作需要
public <T> List<T> showPageInfo(Object object){
//获取一个对象----然后将获取一个方法把叶头与叶尾的值放进去获得某叶数据
Class clazz = object.getClass();
List<T> list = new ArrayList<>();
try {
Object o = clazz.newInstance();
Method method = clazz.getMethod("showPageLimit",new Class[]{int.class,int.class});
list = (List<T>) method.invoke(o, this.getCurrPage(),this.getCurrPageSize());//这边是给方法传的值,这两个是sql语句中limit的左边跟右边
System.out.println(o.toString());
} catch (InstantiationException | NoSuchMethodException | IllegalAccessException | InvocationTargetException e) {
e.printStackTrace();
}
return list;
}
public static void main(String[] args) {
PageUtil pageUtil = new PageUtil();
pageUtil.setCurrPage(2,5);//前面参数是页数,后面参数是页面的显示条数
pageUtil.setCurrPageSize(5);//这边参数是页面的显示条数
ShowPage showPage = new ShowPage();//这个是需要分页的对象-----里面一定要写showPageLimit(int i,int j)方法,因为我反射里面默认直接调用的是这个方法
System.out.println(pageUtil.getCurrPage());
System.out.println(pageUtil.getCurrPageSize());
List<News> list = pageUtil.showPageInfo(showPage);//直接传进去对象,出来的就是我要的数据,这边很好的地方时。不管什么类。都可以用了。
System.out.println(list);
for (News news: list) {
System.out.println(news.getNtitle());
}
}
public class ShowPage {
public List showPageLimit(int i, int j){
List list = new ArrayList<>();
NewsDaoimpl newsDaoimpl = new NewsDaoimpl();
return newsDaoimpl.selectNews(i,j);
}
}
好了。虽然知道框架里面有个pagehelper的玩意,可以参考,但是只是参考。可以的话,自己写一个,虽然不是最优雅的,但是是自己的想出来的。这个才是最重要的