MP(不是MMP ^_^)--》mybatis plus,通常我们用ssm的时候会用到这个,但是里面也有一些小坑(如果研究透彻不算是坑)需要填一下
分页查询
通常我们的调用分页查询时候Mapper是这么写的
List<Student> queryPage(Page<Student> page, Map<String,Object> params);
然后再正常写sql查询,没毛病。
可是
当我们调用他service自带的selectPage(Page<T> page, Wrapper<T> wrapper)时候,有可能会有惊喜。比如
@RequestMapping("query-page")
public ResultModel queryPage(@RequestBody Page<Student> page, @RequestParam(name = "name", required = false) String name) {
EntityWrapper<Student> entityWrapper = new EntityWrapper<>();
entityWrapper.like("NAME", name);
return ResultModel.ok(scoreGoodsService.selectPage(page, entityWrapper));
}
我们本意是查询名称含有{name}的学生,但是通常我们为了方便,会把查询参数封装到page.condition中,此时如果page.condition中包含其他参数,则会一起被拼接在整个sql后面,因此查询的结果不只是按name查询。
需要注意的就是条件查询时候一定弄清楚condition中都包含了什么
挖坑不止,踩坑不断