java中ssm怎樣實(shí)現(xiàn)分頁(yè)查詢

小樊
81
2024-09-28 21:32:44

在Java的SSM(Spring + Spring MVC + MyBatis)框架中,實(shí)現(xiàn)分頁(yè)查詢可以通過(guò)以下步驟來(lái)完成:

  1. 創(chuàng)建分頁(yè)查詢的SQL語(yǔ)句

在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ù)。

  1. 創(chuàng)建分頁(yè)參數(shù)對(duì)象

創(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
}
  1. 修改Mapper接口

在Mapper接口中,添加一個(gè)分頁(yè)查詢的方法,接收分頁(yè)參數(shù)對(duì)象作為參數(shù)。例如:

public interface UserMapper {
    List<User> selectPage(PageParam pageParam);
}
  1. 在Service層調(diào)用Mapper方法

在Service層,注入Mapper接口,并調(diào)用分頁(yè)查詢的方法。例如:

@Service
public class UserService {
    @Autowired
    private UserMapper userMapper;

    public List<User> selectPage(PageParam pageParam) {
        return userMapper.selectPage(pageParam);
    }
}
  1. 在Controller層接收分頁(yè)參數(shù)并調(diào)用Service方法

在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";
    }
}
  1. 在前端頁(yè)面顯示分頁(yè)信息

在前端頁(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è)查詢功能。

0