若依框架学习(三)PageHelper

用户数据分页
若依框架学习(三)PageHelper_第1张图片
对于如何分页显示用户数据,我们首先找到当前路由地址是:http://localhost/system/user
若依框架学习(三)PageHelper_第2张图片

这说明应该在对应的Controller有/system/user,并且有pageNum=1和pageSize=10这两个参数,找到对应的Controller后,往下找就找到了
若依框架学习(三)PageHelper_第3张图片
这里先讲下@PreAuthorize注解,这是SpringSecurity的注解,作用是限制对该方法的访问,在访问方法前,会校验目前用户是否有访问该资源,通过@ss的hasPermi()方法来处理,ctrl+左击@ss即可跳转到该service层。
若依框架学习(三)PageHelper_第4张图片
若依框架学习(三)PageHelper_第5张图片
这里运用了HashSet的contains方法,如果Set中有该元素,则返回true。
首先将用户的权限信息放入Set中,再通过即将访问的权限与在Set中查找有没有重复的该元素,如果有该元素,说明这用户有访问该方法的权限。

接下来进入正题,谈谈该方法的逻辑
步骤:
1,开启分页器
2,查找用户信息,并将其封装为list集合
3,将该集合丢给分页器处理,并返回TableDataInfo给前端。

开启分页器
startPage(),这里用了pageHelper。
pageHelper的作用简单来说,可以自己设置分页参数,然后等mybatis查询sql语句通过拦截器进行拦截,给sql语句注入分页参数。
若依框架学习(三)PageHelper_第6张图片
若依框架学习(三)PageHelper_第7张图片
getpageDomain()方法主要是从前端request请求获得一些参数,来给分页对象pageDomain赋值。

回到startPage()方法,这里通过pageDomain对象获取,分页参数(第几页,每页显示数据量)

在这里插入图片描述
这里的reasonable因为前端请求没有该参数,但getReasonable()方法里面,正因为是null,所有返回true,于是pageHelper就设置了Reasonable为true,意思是保证参数的正确性,例如我传入了非数字或者小于0的参数,会给默认值1。

查询用户数据
得到了分页数据,接下来就是查询用户信息了
若依框架学习(三)PageHelper_第8张图片
其中@DataScope注解是给对应的表设置别名,如deptAlias表为d,userAlias为u
若依框架学习(三)PageHelper_第9张图片
最后把查询结果封装成TableDataInfo返回给前端。

你可能感兴趣的:(若依框架学习,java)