mybatisplus 自定义去重排序分页查询
时间: 2023-08-23 20:04:42 浏览: 125
MyBatis-Plus 分页查询以及自定义sql分页的实现
4星 · 用户满意度95%
mybatisplus 提供了方便的分页查询方法,但是没有提供去重和排序的功能,我们可以通过自定义 SQL 实现这些功能。
首先,我们需要自定义 SQL,例如:
```sql
SELECT DISTINCT id, name, age
FROM user
ORDER BY age DESC, id ASC
LIMIT #{offset}, #{limit}
```
然后,在 MybatisPlus 的 Mapper 接口中,定义一个方法,例如:
```java
public interface UserMapper extends BaseMapper<User> {
@Select("SELECT DISTINCT id, name, age FROM user ORDER BY age DESC, id ASC LIMIT #{offset}, #{limit}")
List<User> selectDistinctAndSortPage(Page<?> page);
}
```
最后,在 Service 中,调用自定义的 Mapper 方法,例如:
```java
public interface UserService {
Page<User> selectDistinctAndSortPage(Page<User> page);
}
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public Page<User> selectDistinctAndSortPage(Page<User> page) {
List<User> records = userMapper.selectDistinctAndSortPage(page);
return page.setRecords(records);
}
}
```
这样就可以实现自定义去重排序分页查询了。
阅读全文