在 MyBatis 中,要實(shí)現(xiàn)根據(jù) resultType 進(jìn)行分頁(yè)查詢,你需要遵循以下步驟:
添加分頁(yè)參數(shù):在你的查詢方法中,添加兩個(gè)分頁(yè)參數(shù),一個(gè)表示當(dāng)前頁(yè)碼(pageNum),另一個(gè)表示每頁(yè)顯示的記錄數(shù)(pageSize)。
修改 SQL 語(yǔ)句:在你的 SQL 查詢語(yǔ)句中,使用 LIMIT 和 OFFSET 關(guān)鍵字來(lái)限制查詢結(jié)果的范圍。LIMIT 用于設(shè)置每頁(yè)顯示的記錄數(shù),OFFSET 用于設(shè)置查詢結(jié)果的起始位置。
在 MyBatis 配置文件中,為查詢方法添加 resultType 屬性,指定返回值類型。
以下是一個(gè)簡(jiǎn)單的示例:
public class User {
private int id;
private String name;
private String email;
// 省略 getter 和 setter 方法
}
<mapper namespace="com.example.dao.UserMapper">
<select id="findUsersByPage" parameterType="map" resultType="com.example.entity.User">
SELECT * FROM user
LIMIT #{pageSize}
OFFSET #{offset}
</select>
</mapper>
public interface UserMapper {
List<User> findUsersByPage(@Param("pageNum") int pageNum, @Param("pageSize") int pageSize);
}
@Service
public class UserService {
@Autowired
private UserMapper userMapper;
public List<User> findUsersByPage(int pageNum, int pageSize) {
Map<String, Object> params = new HashMap<>();
params.put("pageNum", pageNum);
params.put("pageSize", pageSize);
int offset = (pageNum - 1) * pageSize;
params.put("offset", offset);
return userMapper.findUsersByPage(params);
}
}
現(xiàn)在,你可以通過(guò)調(diào)用 findUsersByPage
方法來(lái)實(shí)現(xiàn)根據(jù) resultType 進(jìn)行分頁(yè)查詢。注意,這里的示例僅適用于支持 LIMIT 和 OFFSET 關(guān)鍵字的數(shù)據(jù)庫(kù),如 MySQL、PostgreSQL 等。對(duì)于其他數(shù)據(jù)庫(kù),你可能需要使用不同的分頁(yè)查詢語(yǔ)法。