mybatis分页查询
时间: 2023-07-07 17:15:48 浏览: 58
MyBatis 是一款优秀的基于 Java 的持久层框架,支持定制化 SQL、存储过程以及高级映射。MyBatis 提供了非常方便的分页查询功能,下面是一个简单的示例:
1. 在 mapper.xml 文件中编写分页查询语句:
```xml
<select id="findUsers" parameterType="map" resultType="User">
select * from user
<where>
<if test="username != null and username != ''">
and username like #{username}
</if>
</where>
order by id desc
limit #{start}, #{pageSize}
</select>
```
2. 在 DAO 层中编写分页查询方法:
```java
public List<User> findUsers(String username, int start, int pageSize) {
Map<String, Object> params = new HashMap<>();
params.put("username", "%" + username + "%");
params.put("start", start);
params.put("pageSize", pageSize);
return sqlSession.selectList("findUsers", params);
}
```
3. 在 Service 层中调用分页查询方法:
```java
public Page<User> findUsers(String username, int pageNum, int pageSize) {
int start = (pageNum - 1) * pageSize;
List<User> users = userDao.findUsers(username, start, pageSize);
PageInfo<User> pageInfo = new PageInfo<>(users);
return new Page<>(pageInfo.getTotal(), users);
}
```
其中,Page 是一个自定义的分页对象,包含了查询结果总数和当前页的数据列表。上述示例中使用了 MyBatis 的分页插件 PageHelper 来实现分页查询,非常方便好用。