MyBatis 本身并不提供内置的分页功能,但你可以通过编写自定义的分页 SQL 语句来实现分页查询。这里有一个简单的例子,展示了如何在 MyBatis 中实现基于 MySQL 数据库的分页查询:
<mapper namespace="com.example.mapper.UserMapper">
<resultMap id="UserResultMap" type="com.example.entity.User">
<id property="id" column="id"/>
<result property="username" column="username"/>
<result property="email" column="email"/>
</resultMap>
<select id="findUsersByPage" resultMap="UserResultMap">
SELECT * FROM user
LIMIT #{offset}, #{pageSize}
</select>
</mapper>
这里的 #{offset}
和 #{pageSize}
是分页参数,它们将在 Java 代码中传递给 SQL 语句。
public interface UserMapper {
List<User> findUsersByPage(@Param("offset") int offset, @Param("pageSize") int pageSize);
}
@Service
public class UserService {
@Autowired
private UserMapper userMapper;
public List<User> findUsersByPage(int pageNum, int pageSize) {
int offset = (pageNum - 1) * pageSize;
return userMapper.findUsersByPage(offset, pageSize);
}
}
这样,你就可以根据自定义的分页 SQL 语句实现 MyBatis 的分页查询了。需要注意的是,不同的数据库可能有不同的分页语法,你需要根据所使用的数据库进行相应的调整。