最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

pageHelper一對(duì)多分頁(yè)解決方案示例

 更新時(shí)間:2023年04月18日 14:45:23   作者:Cosolar  
這篇文章主要為大家介紹了pageHelper一對(duì)多分頁(yè)解決方案示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

pageHelper

是一個(gè)非常方便實(shí)用的 Java 分頁(yè)插件,可以輕松實(shí)現(xiàn)數(shù)據(jù)庫(kù)分頁(yè)查詢。而在一對(duì)多的情況下,如果要實(shí)現(xiàn)主表和從表的聯(lián)合分頁(yè)查詢,可以采用以下兩種解決方案:

1.使用嵌套查詢

在 SQL 語(yǔ)句中使用嵌套查詢,先在主表中查詢出需要的數(shù)據(jù)信息,然后再根據(jù)這些信息去查詢對(duì)應(yīng)的從表數(shù)據(jù)。具體的 SQL 語(yǔ)法如下:

SELECT m.*, (SELECT COUNT(1) FROM sub_tab s WHERE s.m_id = m.id) AS count
FROM main_tab m
WHERE ...
ORDER BY ...
LIMIT ...

這樣就可以先獲取到主表的分頁(yè)信息,然后再根據(jù)查詢出來(lái)的主表 ID 去從表中查詢相應(yīng)的數(shù)據(jù),實(shí)現(xiàn)一對(duì)多的聯(lián)合分頁(yè)。

2.使用自定義統(tǒng)計(jì)查詢

以下是使用 pageHelper 實(shí)現(xiàn)一對(duì)多分頁(yè)查詢的代碼示例:

假設(shè)我們有兩個(gè)實(shí)體類:Order 和 OrderItem,它們之間的關(guān)系是一對(duì)多,即一個(gè) Order 對(duì)應(yīng)多個(gè) OrderItem。

  • 首先,在 pom.xml 文件中添加 pageHelper 的依賴:
<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper</artifactId>
    <version>5.2.1</version>
</dependency>
  • 在 OrderMapper.xml 中編寫(xiě) SQL 查詢語(yǔ)句:
<select id="selectOrderWithItems" resultMap="orderResultMap">
  select o.*, oi.id as item_id, oi.name as item_name, oi.price as item_price
  from orders o
  left join order_items oi on o.id = oi.order_id
  where 1=1
  <if test="orderId != null">
    and o.id = #{orderId}
  </if>
  order by o.create_time desc, oi.create_time desc
</select>
<resultMap id="orderResultMap" type="Order">
  <id property="id" column="id"/>
  <result property="totalPrice" column="total_price"/>
  <result property="createTime" column="create_time"/>
  <!-- 一對(duì)多映射 -->
  <collection property="items" ofType="OrderItem">
    <id property="id" column="item_id"/>
    <result property="name" column="item_name"/>
    <result property="price" column="item_price"/>
  </collection>
</resultMap>
  • 在 OrderMapper 接口中添加方法定義:
List<Order> selectOrderWithItems(@Param("orderId") Integer orderId);
  • 在 OrderServiceImpl 中通過(guò) PageHelper 實(shí)現(xiàn)分頁(yè)查詢:
public PageInfo<Order> getOrderWithItems(Integer orderId, Integer pageNum, Integer pageSize) {
    PageHelper.startPage(pageNum, pageSize);
    List<Order> orderList = orderMapper.selectOrderWithItems(orderId);
    return new PageInfo<>(orderList);
}
  • 最后,在 Controller 層調(diào)用 getOrderWithItems 方法實(shí)現(xiàn)分頁(yè)查詢:
@RequestMapping("/orders")
public ResponseEntity<PageInfo<Order>> getOrderWithItems(
        @RequestParam(required = false) Integer orderId,
        @RequestParam(defaultValue = "1") Integer pageNum,
        @RequestParam(defaultValue = "10") Integer pageSize) {
    PageInfo<Order> pageInfo = orderService.getOrderWithItems(orderId, pageNum, pageSize);
    return ResponseEntity.ok(pageInfo);
}

這樣就可以實(shí)現(xiàn)一對(duì)多分頁(yè)查詢了, 以上是使用 pageHelper 實(shí)現(xiàn)一對(duì)多分頁(yè)查詢的代碼示例,具體實(shí)現(xiàn)時(shí)可根據(jù)自己的需求進(jìn)行修改。

通過(guò)以上兩種方法,我們可以很容易地實(shí)現(xiàn)一對(duì)多的聯(lián)合分頁(yè)查詢。

以上就是pageHelper一對(duì)多分頁(yè)解決方案示例的詳細(xì)內(nèi)容,更多關(guān)于pageHelper一對(duì)多分頁(yè)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 基于surging跨網(wǎng)關(guān)跨語(yǔ)言進(jìn)行緩存降級(jí)的問(wèn)題小結(jié)

    基于surging跨網(wǎng)關(guān)跨語(yǔ)言進(jìn)行緩存降級(jí)的問(wèn)題小結(jié)

    surging是一款開(kāi)源的微服務(wù)引擎,包含了rpc服務(wù)治理,中間件,以及多種外部協(xié)議來(lái)解決各個(gè)行業(yè)的業(yè)務(wù)問(wèn)題,這篇文章主要介紹了如何基于surging跨網(wǎng)關(guān)跨語(yǔ)言進(jìn)行緩存降級(jí),需要的朋友可以參考下
    2024-05-05
  • Spring中如何操作JDBC的實(shí)現(xiàn)

    Spring中如何操作JDBC的實(shí)現(xiàn)

    這篇文章主要介紹了Spring中如何操作JDBC的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • 通過(guò)實(shí)例解析Java List正確使用方法

    通過(guò)實(shí)例解析Java List正確使用方法

    這篇文章主要介紹了通過(guò)實(shí)例解析Java List正確使用方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11
  • Java基礎(chǔ)知識(shí)匯總

    Java基礎(chǔ)知識(shí)匯總

    這篇文章對(duì)Java編程語(yǔ)言的基礎(chǔ)知識(shí)作了一個(gè)較為全面的匯總,在這里給大家分享一下。需要的朋友可以參考。
    2017-09-09
  • Spring Boot 整合 Druid 并開(kāi)啟監(jiān)控的操作方法

    Spring Boot 整合 Druid 并開(kāi)啟監(jiān)控的操作方法

    本文介紹了如何在SpringBoot項(xiàng)目中引入和配置Druid數(shù)據(jù)庫(kù)連接池,并開(kāi)啟其監(jiān)控功能,通過(guò)添加依賴、配置數(shù)據(jù)源、開(kāi)啟監(jiān)控、自定義配置以及訪問(wèn)監(jiān)控頁(yè)面,開(kāi)發(fā)者可以有效提高數(shù)據(jù)庫(kù)訪問(wèn)效率并監(jiān)控連接池狀態(tài),感興趣的朋友跟隨小編一起看看吧
    2025-01-01
  • Spring事務(wù)控制策略及@Transactional失效問(wèn)題解決避坑

    Spring事務(wù)控制策略及@Transactional失效問(wèn)題解決避坑

    這篇文章主要為大家介紹了Spring事務(wù)控制策略及@Transactional失效問(wèn)題解決避坑,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06
  • SpringBoot與rabbitmq的結(jié)合的示例

    SpringBoot與rabbitmq的結(jié)合的示例

    這篇文章主要介紹了SpringBoot與rabbitmq的結(jié)合的示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-03-03
  • 淺析Java中Apache BeanUtils和Spring BeanUtils的用法

    淺析Java中Apache BeanUtils和Spring BeanUtils的用法

    這篇文章主要介紹了Java中Apache BeanUtils和Spring BeanUtils的用法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-11-11
  • logback的LevelFilter日志過(guò)濾器源碼解讀

    logback的LevelFilter日志過(guò)濾器源碼解讀

    這篇文章主要為大家介紹了logback的LevelFilter日志過(guò)濾器源碼解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11
  • spring boot動(dòng)態(tài)加載Echart餅狀圖

    spring boot動(dòng)態(tài)加載Echart餅狀圖

    這篇文章主要為大家詳細(xì)介紹了spring boot動(dòng)態(tài)加載Echart餅狀圖,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-12-12

最新評(píng)論

金塔县| 彰化市| 晋宁县| 青冈县| 扎囊县| 莆田市| 沽源县| 平度市| 呼玛县| 富川| 关岭| 泸西县| 潜江市| 百色市| 泸水县| 沅陵县| 赤峰市| 济阳县| 门头沟区| 孟津县| 桃源县| 叙永县| 丹凤县| 大新县| 麻城市| 东乡县| 大悟县| 交城县| 教育| 安福县| 洛南县| 明溪县| 修文县| 罗平县| 沿河| 上杭县| 揭阳市| 东台市| 文化| 云安县| 大姚县|