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

MybatisPlus如何調(diào)用count函數(shù)

 更新時(shí)間:2023年08月12日 16:51:35   作者:做軟件開發(fā)的小鋒  
這篇文章主要介紹了MybatisPlus如何調(diào)用count函數(shù)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

MybatisPlus調(diào)用count函數(shù)

項(xiàng)目整合了mybatisPlus時(shí),可以使用count函數(shù)做一些簡(jiǎn)單的統(tǒng)計(jì)

項(xiàng)目中遇到一個(gè)記錄統(tǒng)計(jì),由于項(xiàng)目整合過mybatisPlus,就不通過mybatis去寫sql做查詢,可通過QueryWrapper方法直接進(jìn)行查詢

調(diào)用方法

用mybatisPlus使用count聚合函數(shù)時(shí),直接調(diào)用.select方法即可,

例如:

csArchiveQueryWrapper.select("COUNT(*) as importNo");

詳細(xì)server層代碼

這里我們通過 QueryWrapper.select() 進(jìn)行查詢,在傳入getMap方法,定義map接收,最后取出我們需要的 importNo 即可,由于在實(shí)體類中定義的類型為 Integer,所以做了類型轉(zhuǎn)換

代碼如下(示例):

    public ArchiveRecords query(ArchiveRecordsVo vo) {
        …………………………
        ArchiveRecords records = baseMapper.selectOne(queryWrapper);
        //查詢archive表中檔案總條數(shù)
        QueryWrapper<Archive> ArchiveQueryWrapper= new QueryWrapper<>();
        ArchiveQueryWrapper.select("COUNT(*) as importNo");
        Map<String , Object> map = archiveService.getMap(ArchiveQueryWrapper);
        System.out.println("==============>map:" + map);
        Integer No = Integer.valueOf(String.valueOf(map.get("importNo")));
        System.out.println("--------------->取出map中importNo:" + No);
        System.out.println("--------------->取出map中importNo:" + No);
        System.out.println("--------------->取出map中importNo:" + No);
        records1.setImportNo(No);
        System.out.println("--------------->set后新總條數(shù):" + records.getImportNo());
        System.out.println("--------------->set后新總條數(shù):" + records.getImportNo());
        System.out.println("--------------->set后新總條數(shù):" + records.getImportNo());
        return records;
    }

控制臺(tái)輸出:

代碼如下(示例):

==============>map:{importNo=5}
--------------->取出map中importNo:5
--------------->取出map中importNo:5
--------------->取出map中importNo:5
--------------->set后新總條數(shù):5
--------------->set后新總條數(shù):5
--------------->set后新總條數(shù):5

注意:

在select()中自定義的sql語(yǔ)句,不需要加 from table_name,它會(huì)自動(dòng)拼接,若自己加了,則會(huì)出現(xiàn)報(bào)錯(cuò),拼接的sql語(yǔ)句將會(huì)變?yōu)椋?/p>

SELECT COUNT(*) as importNo FROM archive FROM archive

sql會(huì)多拼接一個(gè) from table_name 這里需要注意一下,需要where條件可通過 QueryWrapper.eq() 等方法實(shí)現(xiàn),可根據(jù)實(shí)際需求自行選擇

注意:

通過mybatisPlus的方法,可以快速的實(shí)現(xiàn)某些方法,不用寫xml,做層層調(diào)用,非常好用。

mybatisplus:Count()方法和groupBy組合使用的報(bào)錯(cuò)

錯(cuò)誤日志:

java org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 2

錯(cuò)誤代碼示例

int studentNum = studentLackDealService.count(
new LambdaQueryWrapper<StudentLackDeal>().eq(StudentLackDeal::getBatchId, batchId)
.groupBy(StudentLackDeal::getAdmissionTicket));

問題分析

代碼看起來沒什么問題,是求出groupBy之后的數(shù)量,但是此時(shí)我們通過生成的sql可以看到:

SELECT
	COUNT(*)
FROM
	exam_student_lack_deal 
WHERE
	del_flag = 0 
	AND ( batch_id = XXX ) 

這樣查詢出來的結(jié)果是多行數(shù)值:

在這里插入圖片描述

而mybatis-plus的Count()方法用的是int接收,返回的確是一個(gè)list,自然而然就會(huì)報(bào)錯(cuò)了

解決方案

1. 使用 list() 接收處理,.size()獲取數(shù)量

int studentNum = studentLackDealService.list(
   new LambdaQueryWrapper<StudentLackDeal>().eq(StudentLackDeal::getBatchId, batchId)  .groupBy(StudentLackDeal::getAdmissionTicket)).size();

2.去除groupBy 使用DISTINCT關(guān)鍵字去重

int studentNum = studentLackDealService.count(
            new QueryWrapper<StudentLackDeal>().select("DISTINCT admission_ticket").lambda().eq(StudentLackDeal::getBatchId, batchId));

總結(jié)

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

相關(guān)文章

  • SSM?Mapper文件查詢出返回?cái)?shù)據(jù)查不到個(gè)別字段的問題

    SSM?Mapper文件查詢出返回?cái)?shù)據(jù)查不到個(gè)別字段的問題

    這篇文章主要介紹了SSM?Mapper文件查詢出返回?cái)?shù)據(jù)查不到個(gè)別字段的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • 關(guān)于IDEA配置文件字符集的問題

    關(guān)于IDEA配置文件字符集的問題

    這篇文章主要介紹了關(guān)于IDEA配置文件字符集的問題,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-12-12
  • 關(guān)于springBoot yml文件的list讀取問題總結(jié)(親測(cè))

    關(guān)于springBoot yml文件的list讀取問題總結(jié)(親測(cè))

    這篇文章主要介紹了關(guān)于springBoot yml文件的list讀取問題總結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Java中包裝類介紹與其注意事項(xiàng)

    Java中包裝類介紹與其注意事項(xiàng)

    Java語(yǔ)言是一個(gè)面向?qū)ο蟮恼Z(yǔ)言,但是Java中的基本數(shù)據(jù)類型卻是不面向?qū)ο蟮模@在實(shí)際使用時(shí)存在很多的不便,所以在設(shè)計(jì)類時(shí)為每個(gè)基本數(shù)據(jù)類型設(shè)計(jì)了一個(gè)對(duì)應(yīng)的類進(jìn)行代表,這樣八個(gè)和基本數(shù)據(jù)類型對(duì)應(yīng)的類統(tǒng)稱為包裝類,有些地方也翻譯為外覆類或數(shù)據(jù)類型類。
    2017-02-02
  • mybatis xml注釋sql的注意事項(xiàng)及說明

    mybatis xml注釋sql的注意事項(xiàng)及說明

    這篇文章主要介紹了mybatis xml注釋sql的注意事項(xiàng)及說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • Java實(shí)現(xiàn)學(xué)生成績(jī)輸出到磁盤文件的方法詳解

    Java實(shí)現(xiàn)學(xué)生成績(jī)輸出到磁盤文件的方法詳解

    這篇文章主要為大家詳細(xì)介紹了如何利用Java實(shí)現(xiàn)將學(xué)生成績(jī)輸出到磁盤文件的功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2022-11-11
  • protobuf與json轉(zhuǎn)換小結(jié)

    protobuf與json轉(zhuǎn)換小結(jié)

    protobuf對(duì)象不能直接使用jsonlib去轉(zhuǎn),因?yàn)閜rotobuf生成的對(duì)象的get方法返回的類型有byte[],而只有String類型可以作為json的key,protobuf提供方法進(jìn)行轉(zhuǎn)換
    2017-07-07
  • spring?boot自帶的page分頁(yè)問題

    spring?boot自帶的page分頁(yè)問題

    這篇文章主要介紹了spring?boot自帶的page分頁(yè)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • 關(guān)于JAVA 數(shù)組的使用介紹

    關(guān)于JAVA 數(shù)組的使用介紹

    本篇文章小編將為大家介紹,關(guān)于JAVA 數(shù)組的使用介紹,有需要的朋友可以參考一下
    2013-04-04
  • C語(yǔ)言實(shí)現(xiàn)矩陣運(yùn)算案例詳解

    C語(yǔ)言實(shí)現(xiàn)矩陣運(yùn)算案例詳解

    這篇文章主要介紹了C語(yǔ)言實(shí)現(xiàn)矩陣運(yùn)算案例詳解,本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08

最新評(píng)論

石景山区| 开封市| 青河县| 武宣县| 东平县| 肃南| 明星| 怀安县| 广南县| 鹤峰县| 威海市| 长治县| 临安市| 静乐县| 石棉县| 黄浦区| 嘉义市| 诸城市| 唐山市| 漳浦县| 辽中县| 浪卡子县| 疏附县| 黄石市| 措美县| 赣榆县| 罗定市| 蒲城县| 沧源| 云阳县| 河曲县| 大石桥市| 百色市| 崇州市| 双流县| 阿坝县| 施甸县| 若羌县| 龙川县| 南华县| 临清市|