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

Mybatis中的游標(biāo)查詢Cursor(滾動(dòng)查詢)

 更新時(shí)間:2024年01月27日 09:33:34   作者:miraitowa.cn  
這篇文章主要介紹了Mybatis中的游標(biāo)查詢Cursor(滾動(dòng)查詢),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

需求

是實(shí)現(xiàn)滾動(dòng)查詢而不是分頁(yè)

用游標(biāo)查詢實(shí)現(xiàn)此需求

總體思路

滾動(dòng)查詢,往下拉滾動(dòng)條觸發(fā)請(qǐng)求,返回?cái)?shù)據(jù)并帶當(dāng)前下標(biāo),以備下次請(qǐng)求繼續(xù)往下查詢

①首先在dao層mapper文件中寫(xiě)查詢方法

(下面的示例帶有查詢條件)

// 策略為向下滾動(dòng)    
    @Options(resultSetType = ResultSetType.FORWARD_ONLY)
    @Select({"select * from task where status!=#{status} order by create_time desc"})
    Cursor<Task> getTasksStatistic(Integer status);

②在service層寫(xiě)方法并在serviceimpl中實(shí)現(xiàn)

// TaskCursorVo是封裝類(lèi)
TaskCursorVo getTaskStatus(Integer currentIndex, Integer pageSize);
public TaskCursorVo getTaskStatus(Integer currentIndex,Integer pageSize) {
        TaskCursorVo taskCursorVo=new TaskCursorVo();
        List<TaskStatusVo> collect=new ArrayList<>();
// 第一個(gè)參數(shù)為方法名,第二個(gè)參數(shù)是查詢條件的值(如果沒(méi)有查詢條件就寫(xiě)null),第三個(gè)條件是從下標(biāo)為currentIndex的開(kāi)始查pageSize條數(shù)據(jù)
        Cursor<Task> tasksStatistic = sqlSessionTemplate.selectCursor("getTasksStatistic",DELETED.getCode(),new RowBounds(currentIndex,pageSize));
// 對(duì)結(jié)果進(jìn)行遍歷封裝
        Iterator<Task> iterator = tasksStatistic.iterator();
        while (iterator.hasNext()) {
                Task task = iterator.next();
                TaskStatusVo taskStatusVo = new TaskStatusVo();
                BeanUtils.copyProperties(task, taskStatusVo);
                taskStatusVo.setStatusName(Objects.requireNonNull(getByCode(task.getStatus())).getDesc());
                collect.add(taskStatusVo);
        }
        taskCursorVo.setTaskStatusVos(collect);
// 需要把當(dāng)前下標(biāo)返回給前端
        taskCursorVo.setCurrentIndex(tasksStatistic.getCurrentIndex());
        Example e=new Example(Task.class);
        Example.Criteria c = e.createCriteria().andNotEqualTo("status", DELETED.getCode());
        List<Task> tasks = taskMapper.selectByExample(e);
// 把總條數(shù)查出來(lái)給前端
        taskCursorVo.setTotalSize(tasks.size());
        return taskCursorVo;
    }

③controller實(shí)現(xiàn)

@GetMapping("/taskStatus")
    public ResultModel taskStatus(@RequestParam(defaultValue = "0") Integer currentIndex,@RequestParam(defaultValue = "20") Integer pageSize){
// 第一次默認(rèn)從第0條開(kāi)始查詢20條,往后的前端會(huì)把上次請(qǐng)求返回的當(dāng)前下表傳過(guò)來(lái)
// 如果不是從第一次查詢,就要從上次查詢當(dāng)前下標(biāo)的下一條數(shù)據(jù)開(kāi)始查詢
        if (currentIndex!=0){
            currentIndex+=1;
        }
        TaskCursorVo taskCursorVo = taskService.getTaskStatus(currentIndex, pageSize);
        return ResultModel.success(taskCursorVo);
    }

總結(jié)

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

相關(guān)文章

  • Spring Boot 自動(dòng)配置之條件注解淺析

    Spring Boot 自動(dòng)配置之條件注解淺析

    這篇文章主要介紹了Spring Boot 自動(dòng)配置之條件注解淺析,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-02-02
  • Mybatis plus通用字段自動(dòng)填充的示例

    Mybatis plus通用字段自動(dòng)填充的示例

    這篇文章主要介紹了Mybatis plus通用字段自動(dòng)填充的示例,幫助大家更好的理解和使用Mybatis,感興趣的朋友可以了解下
    2021-01-01
  • Java8函數(shù)式接口Predicate用法示例詳解

    Java8函數(shù)式接口Predicate用法示例詳解

    這篇文章主要為大家介紹了Java8函數(shù)式接口Predicate用法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • 淺析SpringBoot2.4 靜態(tài)資源加載問(wèn)題

    淺析SpringBoot2.4 靜態(tài)資源加載問(wèn)題

    這篇文章主要介紹了SpringBoot2.4 靜態(tài)資源加載問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01
  • Java異常類(lèi)型介紹及處理方法

    Java異常類(lèi)型介紹及處理方法

    這篇文章介紹了Java異常類(lèi)型介紹及處理方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-12-12
  • 詳解springmvc 中controller與jsp傳值

    詳解springmvc 中controller與jsp傳值

    本篇文章主要介紹了springmvc 中controller與jsp傳值,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-07-07
  • 自定義log4j日志文件命名規(guī)則說(shuō)明

    自定義log4j日志文件命名規(guī)則說(shuō)明

    這篇文章主要介紹了自定義log4j日志文件命名規(guī)則說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • fastjson序列化時(shí)間自定義格式示例詳解

    fastjson序列化時(shí)間自定義格式示例詳解

    這篇文章主要為大家介紹了fastjson序列化時(shí)間自定義格式示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • Swagger的使用教程詳解

    Swagger的使用教程詳解

    Swagger是一個(gè)強(qiáng)大的API文檔工具,它能夠簡(jiǎn)化API文檔的編寫(xiě)和維護(hù)工作,提供了一種方便的方式來(lái)描述、展示和測(cè)試RESTful風(fēng)格的Web服務(wù)接口,本文介紹了Swagger的安裝配置和使用方法,并提供了示例代碼,感興趣的朋友一起學(xué)習(xí)吧
    2023-06-06
  • spring?boot?redis中的key失效監(jiān)聽(tīng)的問(wèn)題解決

    spring?boot?redis中的key失效監(jiān)聽(tīng)的問(wèn)題解決

    本文主要介紹了spring?boot?redis中的key失效監(jiān)聽(tīng)的問(wèn)題解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2025-07-07

最新評(píng)論

香港 | 抚顺市| 太原市| 丹棱县| 开封市| 米易县| 广河县| 进贤县| 东城区| 福海县| 鄂托克旗| 商洛市| 三亚市| 舞钢市| 梁山县| 合江县| 厦门市| 汝州市| 龙井市| 云阳县| 顺义区| 林周县| 通州区| 五大连池市| 阜康市| 长春市| 南充市| 巴林右旗| 开封市| 常宁市| 广南县| 赫章县| 邯郸县| 涡阳县| 澎湖县| 凤台县| 汝阳县| 北安市| 司法| 宝鸡市| 囊谦县|