Mapper接口传入分页参数自定义分页查询的Mapper
时间: 2023-11-22 13:05:05 浏览: 80
在MyBatis中,可以使用PageHelper插件来进行分页查询,也可以自定义分页查询的Mapper接口。
首先,我们需要在Mapper接口中定义一个方法,该方法需要传入分页参数和其他查询条件,并返回查询结果:
```java
public interface MyMapper<T> {
List<T> findByPage(@Param("start") int start, @Param("size") int size, @Param("condition") Map<String, Object> condition);
}
```
其中,start和size分别表示查询结果的起始位置和查询结果的数量,condition表示其他查询条件。
然后,在Mapper.xml文件中编写对应的SQL语句,使用LIMIT关键字来限制查询结果的数量,使用OFFSET关键字来设置查询结果的起始位置,例如:
```xml
<select id="findByPage" resultType="com.example.entity.User">
SELECT *
FROM user
WHERE 1 = 1
<if test="condition.name != null">
AND name = #{condition.name}
</if>
<if test="condition.age != null">
AND age = #{condition.age}
</if>
LIMIT #{size} OFFSET #{start}
</select>
```
其中,#{size}和#{start}分别对应Mapper接口中定义的size和start参数,#{condition.xxx}表示condition参数中的查询条件。
最后,在Service层中调用Mapper接口的findByPage方法,并传入分页参数和其他查询条件即可实现自定义分页查询:
```java
public List<User> findByPage(int pageNum, int pageSize, String name, Integer age) {
int start = (pageNum - 1) * pageSize;
Map<String, Object> condition = new HashMap<>();
condition.put("name", name);
condition.put("age", age);
return myMapper.findByPage(start, pageSize, condition);
}
```
其中,pageNum和pageSize分别表示当前页码和每页显示数量,start根据pageNum和pageSize计算得出,condition表示其他查询条件。
阅读全文
相关推荐
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20250102104920.png)
![-](https://img-home.csdnimg.cn/images/20250102104920.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![7z](https://img-home.csdnimg.cn/images/20241231044736.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)