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

MyBatis-plus聚合查詢、表關(guān)聯(lián)、條件更新實踐

 更新時間:2026年05月15日 09:59:08   作者:zhengxianyi515  
文章描述了一個圖書館系統(tǒng)的操作流程,首先查詢預(yù)約數(shù)量,其次關(guān)聯(lián)查詢可預(yù)約書籍并發(fā)出通知,最后更新書刊狀態(tài)為下架,輸出每步操作的SQL日志

1、聚合查詢

統(tǒng)計預(yù)約數(shù)量,返回數(shù)量 > 0的記錄:

QueryWrapper<BookArangeDO> arangeQuery = new QueryWrapper<BookArangeDO>()
        .eq("status", "1")
        .in("book_no", bookNoList)
        .select("book_no", "count(book_no) as arange_count")
        .groupBy("book_no").having("arange_count > {0}", 0)
        ;
List<Map<String, Object>> mapList = bookArangeMapper.selectMaps(arangeQuery);
Map<String, Integer> countMap = new HashMap<>();
mapList.forEach(bookArangeDO -> {
    countMap.put(bookArangeDO.get("book_no").toString(), Integer.valueOf(bookArangeDO.get("arange_count").toString()));
});

輸出查詢sql日志

SELECT book_no, count(book_no) AS arange_count 
FROM bl_book_arange 
WHERE deleted = 0 AND (status = ? AND book_no IN (?, ?)) AND tenant_id = 1 
GROUP BY book_no HAVING arange_count > ?

2、表關(guān)聯(lián)查詢

預(yù)約表BookArange關(guān)聯(lián)復(fù)本表BookCopy,查詢可以預(yù)約的書籍,逐個發(fā)出預(yù)約取書通知。

MPJLambdaWrapperX<BookArangeDO> queryWrapperX = new MPJLambdaWrapperX<>();
queryWrapperX
        .select(BookArangeDO::getBookNo, BookArangeDO::getTenantId)
        .leftJoin(BookCopyDO.class, BookCopyDO::getBookNo, BookArangeDO::getBookNo)
        .eq(BookCopyDO::getStatus, "3")    // 可借閱
        .eq(BookArangeDO::getStatus, "1")  // 預(yù)約中
        ;
Page<Map<String, Object>> page = new Page<>(1, 10);
page = bookArangeMapper.selectJoinMapsPage(page, queryWrapperX);

輸出查詢sql日志

SELECT t.book_no,t.tenant_id
FROM bl_book_arange  t    
LEFT JOIN bl_book_copy t1 ON (t1.book_no = t.book_no)  
WHERE  t.deleted=0 AND t1.deleted=0
AND (t1.status = ? AND t.status = ?)

3、條件更新

書刊下架,將已歸還、可借閱狀態(tài)的書刊狀態(tài)更新為已下架狀態(tài)。

        LambdaUpdateWrapper<BookCopyDO> updateWrapper = new LambdaUpdateWrapper<>();
        updateWrapper.in(BookCopyDO::getBookNo, bookNos)
                .in(BookCopyDO::getStatus, "6", "3")   // 已歸還、可借閱
                .set(BookCopyDO::getTakeupId, SecurityFrameworkUtils.getLoginUserId())
                .set(BookCopyDO::getStatus, '7');       // 已下架
        int n = bookCopyMapper.update(updateWrapper);
        if(n !=bookNos.length) {
            throw new ServiceException("下架失敗,請檢查書刊條碼、上架狀態(tài)");
        }

輸出查詢sql日志

UPDATE bl_book_copy SET takeup_id = ?, status = ? 
WHERE deleted = 0 AND (book_no IN (?) AND status IN (?, ?)) AND tenant_id = 1

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 淺談升級Spring Cloud到Finchley后的一點(diǎn)坑

    淺談升級Spring Cloud到Finchley后的一點(diǎn)坑

    這篇文章主要介紹了淺談升級Spring Cloud到Finchley后的一點(diǎn)坑,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-10-10
  • 淺談javaSE 面向?qū)ο?Object類toString)

    淺談javaSE 面向?qū)ο?Object類toString)

    下面小編就為大家?guī)硪黄獪\談javaSE 面向?qū)ο?Object類toString)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-06-06
  • spring-boot-plus V1.4.0發(fā)布 集成用戶角色權(quán)限部門管理(推薦)

    spring-boot-plus V1.4.0發(fā)布 集成用戶角色權(quán)限部門管理(推薦)

    這篇文章主要介紹了spring-boot-plus V1.4.0發(fā)布 集成用戶角色權(quán)限部門管理,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值需要的朋友可以參考下
    2019-11-11
  • Java實現(xiàn)發(fā)送HTML內(nèi)容并帶附件的電子郵件

    Java實現(xiàn)發(fā)送HTML內(nèi)容并帶附件的電子郵件

    這篇文章主要為大家詳細(xì)介紹了如何使用Java實現(xiàn)發(fā)送HTML內(nèi)容并帶附件的電子郵件,文中的示例代碼講解詳細(xì),有需要的小伙伴可以參考一下
    2025-01-01
  • JDK17在Windows安裝及環(huán)境變量配置超詳細(xì)的教程

    JDK17在Windows安裝及環(huán)境變量配置超詳細(xì)的教程

    這篇文章主要介紹了JDK17在Windows安裝及環(huán)境變量配置超詳細(xì)的教程,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-11-11
  • Java編程基本概念

    Java編程基本概念

    本文主要介紹了Java編程的基本概念,具有很好的參考價值。下面跟著小編一起來看下吧
    2017-03-03
  • spring緩存cache的使用詳解

    spring緩存cache的使用詳解

    這篇文章主要介紹了spring緩存cache的使用詳解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • JAVA使用Ip2region獲取IP定位信息的操作方法

    JAVA使用Ip2region獲取IP定位信息的操作方法

    這篇文章主要介紹了JAVA使用Ip2region獲取IP定位信息,ip2region?-?是國內(nèi)開發(fā)者開發(fā)的離線IP地址定位庫,針對國內(nèi)IP效果較好,國外的部分IP只能顯示國家,對java獲取IP定位信息操作過程感興趣的朋友一起看看吧
    2022-05-05
  • Java Mybatis中的 ${ } 和 #{ }的區(qū)別使用詳解

    Java Mybatis中的 ${ } 和 #{ }的區(qū)別使用詳解

    這篇文章主要介紹了Mybatis中的 ${ } 和 #{ }的區(qū)別使用詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • JAVA使用JDBC連接oracle數(shù)據(jù)庫的詳細(xì)過程

    JAVA使用JDBC連接oracle數(shù)據(jù)庫的詳細(xì)過程

    JDBC是一種用于執(zhí)行SQL語句的Java API,可以為多種關(guān)系數(shù)據(jù)庫提供統(tǒng)一訪問,它由一組用Java語言編寫的類和接口組成,下面這篇文章主要給大家介紹了關(guān)于JAVA使用JDBC連接oracle數(shù)據(jù)庫的詳細(xì)過程,需要的朋友可以參考下
    2023-05-05

最新評論

吴江市| 象州县| 海兴县| 新民市| 固阳县| 神池县| 辽源市| 柏乡县| 柯坪县| 绥江县| 定安县| 方正县| 台安县| 伊宁市| 中方县| 绥滨县| 塔城市| 开封市| 大厂| 宁明县| 饶河县| 平凉市| 灵丘县| 乳源| 京山县| 南阳市| 甘泉县| 双城市| 柘城县| 锡林郭勒盟| 永州市| 尼木县| 凤山县| 渑池县| 平昌县| 乌什县| 河曲县| 东平县| 桐柏县| 潮州市| 深泽县|