Mybatis-Plus 注解方式自定义分页实现

前记

毫无疑问,Mybatis-Plus 是优秀的。
Mybatis-Plus 官网的文档中,自定义分页只能只支持 xml 方式,但是鉴于本人对 xml 并不是太喜欢,而是喜欢用注解的方式。

于是,记录了在 Mybatis-Plus 中注解分页方式实现。

实现

首先讲一下我的请求:

1
controller->service->mapper->entity

UserService.java

1
2
3
4
5
6
7
8
9
10
public Object getAll() {
Page userList = new Page<>(1, 5);
Map<String, Object> param = new HashMap<>();
param.put("name", "测试788");
param.put("page", userList);
List<Map<String, Object>> userListArr = mapper.getAllUserGoodsSQLPage(param);
userList.setRecords(userListArr);

return userList;
}

UserMapper.java

1
2
3
4
5
6
7
8
9
@Select("<script>SELECT u.id,u.name from " + TABLE + " as u " +
"left join " + G_TABLE + " as g " +
"on u.id = g.uid " +
"where u.name = #{name}" +
"<if test = 'id != null'>" +
" and u.id = #{id}" +
"</if>" +
"</script>")
List<Map<String, Object>> getAllUserGoodsSQLPage(Map<String, Object> param);