public interface PageSortInterface { Integer getPageNum(); Integer getPageSize(); String getSort(); String getOrder(); } public interface MyBaseMapper<T> extends Mapper<T>, MySqlMapper<T>,MyInsertListMapper<T> { } public interface UserMapper extends MyBaseMapper<User> { } springboot项目在有这三个接口的情况下,实现在sql层的分页(使用RowBounds方式)
时间: 2024-03-16 16:42:11 浏览: 22
可以通过以下步骤实现在sql层的分页:
1. 在Mapper接口中定义一个方法,例如:
```
List<User> findUsers(PageSortInterface pageSortInterface);
```
2. 在Mapper.xml文件中实现该方法,例如:
```
<select id="findUsers" resultMap="BaseResultMap">
select * from user
<if test="sort != null and order != null">
order by ${sort} ${order}
</if>
<if test="pageNum != null and pageSize != null">
limit #{pageNum}, #{pageSize}
</if>
</select>
```
3. 在service中调用Mapper方法,例如:
```
public PageInfo<User> findUsers(int pageNum, int pageSize, String sort, String order) {
PageSortInterface pageSortInterface = new PageSortInterface() {
@Override
public Integer getPageNum() {
return pageNum;
}
@Override
public Integer getPageSize() {
return pageSize;
}
@Override
public String getSort() {
return sort;
}
@Override
public String getOrder() {
return order;
}
};
RowBounds rowBounds = new RowBounds(pageNum, pageSize);
List<User> users = userMapper.findUsers(pageSortInterface, rowBounds);
return new PageInfo<>(users);
}
```
这样就可以实现在sql层的分页了。需要注意的是,RowBounds是用于分页的,pageNum和pageSize分别指定要查询的页数和每页的行数,sort和order是用于排序的,可选参数。