mybatis自定义条件分页查询
时间: 2023-06-29 12:07:27 浏览: 95
mybatis自定义分页
Mybatis 提供了自定义条件分页查询的支持,以下是一个示例:
```
public interface UserMapper {
List<User> selectByPage(@Param("name") String name, @Param("start") int start, @Param("pageSize") int pageSize);
}
```
在 Mapper 接口中定义一个名为 `selectByPage` 的方法,该方法有三个参数:`name`、`start` 和 `pageSize`。其中,`name` 是查询条件,`start` 和 `pageSize` 分别表示起始位置和每页显示的记录数。
在对应的 XML 文件中,可以使用 `<if>` 标签来实现动态 SQL 语句的生成。例如:
```
<select id="selectByPage" resultType="User">
select * from user
<where>
<if test="name != null and name != ''">
and name like concat('%', #{name}, '%')
</if>
</where>
order by id desc
limit #{start}, #{pageSize}
</select>
```
以上代码中,使用了 `<if>` 标签来判断 `name` 参数是否为空,如果不为空,则拼接一个 `like` 条件。然后使用 `limit` 子句实现分页查询。
注意:在 Mapper 接口中,需要使用 `@Param` 注解来指定参数名称,以便在 XML 文件中引用。
阅读全文