mapper也就是dao
//查询总数
@Select("select count(*) from book;")
int selectCount();
//分页查询
@Select("select * from book limit #{currpage},#{size}")
List<Book> selectPage(Map<String,Object> map);
测试类中调用
//推荐基础分页查询
//总记录数
int count = bm.selectCount();
//当前页(currpage)和每页的大小(size)
int currpage = 3;
int size = 2;
//如果小于0则令其为1
if(currpage <= 0)currpage = 1;
//总页数
int countpage = count % size == 0 ? count / size : count / size + 1;
if (currpage > countpage) currpage = countpage;
System.out.println("总记录数" + count + "总页数" + countpage + "当前" + currpage +"页" + "每页" + size +"条数据");
Map<String,Object> map = new HashMap<>();
map.put("currpage",currpage * size - size);
map.put("size",size);
List<Book> books = bm.selectPage(map);
System.out.println(books);
不推荐使用 因为原理是查找全部然后装进一个容器中读取想要的行数
mapper
//Mybatis分页器 不推荐
@Select("select * from book")
List<Book> selectRow(RowBounds row);
//总记录数
int count = bm.selectCount();
//当前页(currpage)和每页的大小(size)
int currpage = 3;
int size = 2;
//如果小于0则令其为1
if(currpage <= 0)currpage = 1;
//总页数
int countpage = count % size == 0 ? count / size : count / size + 1;
if (currpage > countpage) currpage = countpage;
RowBounds rowBounds = new RowBounds(currpage * size - size,size);
System.out.println(bm.selectRow(rowBounds));
通过MyBatis中的过滤器对查找所有的操作进行修改得到分页查询
<dependency>
<groupId>com.github.pagehelpergroupId>
<artifactId>pagehelperartifactId>
<version>5.3.2version>
dependency>
spring 框架的入口文件
sf.setPlugins(new PageInterceptor());
mapper
// 分页查询之PageHelpe
// @r
@Select("select * from book")
List<Book> query();
第三页每页两条记录
PageHelper.startPage(3,2);
PageInfo<Book> bookPageInfo = new PageInfo<>(bm.query());
List<Book> list = bookPageInfo.getList();
System.out.println(Arrays.toString(list.toArray()));
PageHelper.startPage(1,3,"bid desc");
PageInfo<Book> bookPageInfo0 = new PageInfo<>(bm.query());
System.out.println(bookPageInfo0.getList());
关于五个参数
第一个为 第几页
第二个为 每页的个数
第三个 是否查询总数
第四个 是否则正确判定(if 当前页为-1或者0 自动变为1)
第五个 若size为0且第五个参数为true 查询所有
(1)查询总数
PageHelper.startPage(1,2,true);
PageInfo<Book> bookPageInfo1 = new PageInfo<>(bm.query());
System.out.println( "(1)"+bookPageInfo1.getList());
(2)加入正确处理页数操作
PageHelper.startPage(0,2,true,true,true);
PageInfo<Book> bookPageInfo2 = new PageInfo<>(bm.query());
System.out.println( "(2)"+bookPageInfo2.getList());
(3)最后一个为true且size = 0则会查询所有
PageHelper.startPage(1,0,true,true,true);
PageInfo<Book> bookPageInfo1 = new PageInfo<>(bm.query());
System.out.println(bookPageInfo1.getList());
结果太长导致无法显示完毕