在Java的SSM(Spring + Spring MVC + MyBatis)框架中,實(shí)現(xiàn)分頁(yè)查詢可以通過(guò)以下步驟來(lái)完成:
在MyBatis的Mapper XML文件中,編寫分頁(yè)查詢的SQL語(yǔ)句。例如,對(duì)于一個(gè)名為User
的表,可以創(chuàng)建如下分頁(yè)查詢的SQL語(yǔ)句:
<select id="selectPage" parameterType="map" resultMap="BaseResultMap">
SELECT * FROM user
LIMIT #{offset}, #{pageSize}
</select>
其中,#{offset}
表示查詢的起始位置,#{pageSize}
表示每頁(yè)顯示的記錄數(shù)。
創(chuàng)建一個(gè)分頁(yè)參數(shù)對(duì)象,用于接收前端傳遞的分頁(yè)信息。例如,創(chuàng)建一個(gè)名為PageParam
的Java類:
public class PageParam {
private int pageNum; // 當(dāng)前頁(yè)
private int pageSize; // 每頁(yè)顯示的記錄數(shù)
// getter and setter methods
}
在Mapper接口中,添加一個(gè)分頁(yè)查詢的方法,接收分頁(yè)參數(shù)對(duì)象作為參數(shù)。例如:
public interface UserMapper {
List<User> selectPage(PageParam pageParam);
}
在Service層,注入Mapper接口,并調(diào)用分頁(yè)查詢的方法。例如:
@Service
public class UserService {
@Autowired
private UserMapper userMapper;
public List<User> selectPage(PageParam pageParam) {
return userMapper.selectPage(pageParam);
}
}
在Controller層,接收前端傳遞的分頁(yè)信息,并調(diào)用Service層的分頁(yè)查詢方法。例如:
@Controller
public class UserController {
@Autowired
private UserService userService;
@RequestMapping("/selectPage")
public String selectPage(PageParam pageParam, Model model) {
List<User> userList = userService.selectPage(pageParam);
model.addAttribute("userList", userList);
model.addAttribute("pageParam", pageParam);
return "userList";
}
}
在前端頁(yè)面,使用分頁(yè)組件(如Bootstrap的pagination插件)顯示分頁(yè)信息,并添加點(diǎn)擊分頁(yè)按鈕時(shí)發(fā)送分頁(yè)請(qǐng)求的邏輯。例如,使用Thymeleaf模板引擎:
<div class="user-list">
<table>
<!-- 顯示用戶列表 -->
</table>
</div>
<div class="pagination">
<span th:text="${pageParam.pageNum}"></span>
<a th:href="@{/selectPage(pageNum=${pageParam.pageNum} - 1, pageSize=${pageParam.pageSize})}">上一頁(yè)</a>
<span th:text="${pageParam.pageNum * pageParam.pageSize} - ${pageParam.pageSize}">共${pageParam.totalCount}條,當(dāng)前第${pageParam.pageNum}頁(yè)</span>
<a th:href="@{/selectPage(pageNum=${pageParam.pageNum} + 1, pageSize=${pageParam.pageSize})}">下一頁(yè)</a>
</div>
通過(guò)以上步驟,就可以實(shí)現(xiàn)基于SSM框架的分頁(yè)查詢功能。