在 MyBatis 中,我们可以使用 <foreach>
标签来实现分页查询。以下是一个简单的示例:
- 首先,创建一个分页查询的实体类,例如
Page
:
public class Page {
private int pageNum; // 当前页码
private int pageSize; // 每页显示的记录数
// 构造方法、getter 和 setter 省略
}
- 在 MyBatis 的映射文件中,编写分页查询的 SQL 语句:
<mapper namespace="com.example.dao.UserDao">
<resultMap id="userResultMap" type="com.example.entity.User">
<id property="id" column="id"/>
<result property="username" column="username"/>
<result property="password" column="password"/>
</resultMap>
<select id="findUsersByPage" resultMap="userResultMap">
SELECT * FROM user
LIMIT #{page.pageSize} OFFSET #{page.pageNum}
</select>
</mapper>
这里,我们使用了 <foreach>
标签来遍历 Page
对象的属性,并将其作为参数传递给 SQL 语句。注意,我们使用了 #{page.pageSize}
和 #{page.pageNum}
来引用 Page
对象的属性。
- 在 DAO 接口中,添加分页查询的方法:
public interface UserDao {
List<User> findUsersByPage(Page page);
}
- 最后,在 Service 层或 Controller 层调用 DAO 接口的分页查询方法:
@Service
public class UserService {
@Autowired
private UserDao userDao;
public List<User> findUsersByPage(int pageNum, int pageSize) {
Page page = new Page();
page.setPageNum((pageNum - 1) * pageSize);
page.setPageSize(pageSize);
return userDao.findUsersByPage(page);
}
}
这样,我们就实现了在 MyBatis 中使用 <foreach>
标签进行分页查询的功能。请注意,这里的示例仅供参考,实际项目中可能需要根据具体需求进行调整。