教你手把手实现springboot中的mybatis简单的分页查询方法

241 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

众所周知 分页是一个很重要的功能 而在mybatis里 则很方便的实现了这么一个小功能

而我将带你一步步去实现它 PS:简单教程,大佬可以跳过了

1.首先 新建一个项目 并且搞一个实体类 、 mapper.xml、mapper、service、control 这几个文件 不会的请参照本人的上一篇文件 juejin.cn/post/708181…

2.我们先在BookMapper.xml里面写好sql语句

<select id="queryBooksBySql" parameterType="map" resultType="com.example.demo.ty.Book">
        select * from book limit #{currIndex} , #{pageSize} 
</select>

其中最重要的是limit这个方法名 它的作用就是在这个表里查询第几页的第几个值

而其它的parameterType参数指的是你所通过数据进行操作的sql的值的类型,而resultType参数是指操作SQL语句之后所返回的值的类型,一定要匹配,不匹配会出现异常 而参数类型有 :string 、map、Boolean、Integer等

3.然后再在BookMapper.java里来通过@Mapper注解 和 Mapper.xml 里面的id 映射对应在xml里面的sql语句

List<Book> queryBooksBySql(Map<String,Object> data);

4.然后再在ookService.java来进行调用BookMapper.java里面的方法,而这个方法里主要是通过传过来的页数 和 数据条数 来放到一个新建的 hashmap里 其中map里存的数据为 第一页 第十条 所存的条数就是 0 到 10 ,第二页 第十条 就是 10 到 10 ps:pageSize是数据条数 而currIndex才是真实的页面获取起始数

  public List<Book> queryBooksBySql(int currPage, int pageSize) {
       Map<String, Object> data = new HashMap();
       data.put("currIndex", (currPage-1)*pageSize);
       data.put("pageSize", pageSize);
    
       return bookMapper.queryBooksBySql(data);
   }

5.最后在在BookController.java进行调用这个server方法,其中前端传过来的参数用@RequestMapping和@PathVariable注解进行接收

//分页查询
	    @ResponseBody
	    @RequestMapping("/book/{currPage}/{pageSize}")
		    public  List<Plan> queryBooksBySql(@PathVariable("currPage") int currPage, @PathVariable("pageSize") int pageSize) {
		    
			List<Book> books= bookService.bkqueryBooksBySql(currPage, pageSize);
		        return books;
		    }

最后就完成了一个简单的分页方法了