亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

MybatisPlus實現(xiàn)分頁查詢和動態(tài)SQL查詢的示例代碼

 更新時間:2021年09月30日 12:33:46   作者:趙曉東-Nastu  
本文主要介紹了MybatisPlus實現(xiàn)分頁查詢和動態(tài)SQL查詢的示例代碼,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

一、描述

實現(xiàn)下圖中的功能,分析一下該功能,既有分頁查詢又有根據(jù)計劃狀態(tài)、開始時間、公司名稱進行動態(tài)查詢。

在這里插入圖片描述

二、實現(xiàn)方式

Controller層

   /**
     * @param userId        專員的id
     * @param planState     計劃狀態(tài)
     * @param planStartTime 計劃開始時間
     * @param emtCode       公司名稱-分身id
     * @return java.util.List<com.hc360.crm.entity.po.PlanCustomer>
     * @Author zhaoxiaodong
     * @Description 高級查詢-根據(jù)計劃狀態(tài)、計劃的時間、公司名稱查詢
     * @Date 9:04 2021/9/29
     */
    @PostMapping("/selectPlanByStateTimeCompany")
    public Page<CrmCustomerPlan> selectPlanByStateTimeCompany(@RequestParam(required = false,defaultValue = "1")int limit, @RequestParam(required = false,defaultValue = "1")int page, @RequestParam(required = true) Long userId,@RequestParam(required = false,defaultValue = "0") int planState,@RequestParam(required = false) String planStartTime,@RequestParam(required = false) Long emtCode) {
        //獲取該專員下所有狀態(tài)為未開始的計劃
        List<CrmCustomerPlan> myPlanList = crmCustomerPlanService.selectNoStartPlan(userId);
        if (StringUtil.isNotEmpty(planStartTime)){
            //判斷計劃的開始時間和當前時間
            DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
            LocalDateTime planTime = LocalDateTime.parse(planStartTime, dtf);
            //存放已逾期的計劃
            List<CrmCustomerPlan> overDuePlan = new ArrayList<>();
            for (CrmCustomerPlan customerPlan : myPlanList) {
                if (LocalDateTime.now().isAfter(planTime)) {
                    //當前時間在計劃時間之后,說明過了計劃時間,這時候我們要將它的狀態(tài)改為已逾期
                    customerPlan.setPlanState(PlanStateEnum.OVERDUE.getCode());
                    overDuePlan.add(customerPlan);
                }
            }
            if (overDuePlan.size() > 0) {
                //遍歷完之后,我們就可以對數(shù)據(jù)進行更改了
                crmCustomerPlanService.updateBatchById(overDuePlan);
            }
        }
        //接下來,就是對數(shù)據(jù)進行查詢
        return crmCustomerPlanService.selectPlanByStateTimeCompany(limit,page,userId, planState, planStartTime, emtCode);
    }

在Controller中有l(wèi)imit、page。limit為每頁限制的數(shù)量、page為第幾頁

Service層

    /**
    * @param userId
    * @return java.util.List<com.hc360.crm.entity.po.PlanCustomer>
    * @Author zhaoxiaodong
    * @Description 高級查詢-根據(jù)計劃狀態(tài)、時間、公司名稱查詢
    * @Date 9:06 2021/9/29
    */
   @Override
   public Page<CrmCustomerPlan> selectPlanByStateTimeCompany(int limit,int page,Long userId, int planState, String planStartTime, Long emtCode) {
       Page<CrmCustomerPlan> pagelimit= new Page(page,limit);
       QueryWrapper<CrmCustomerPlan> crmCustomerPlanQueryWrapper = new QueryWrapper<>();
       crmCustomerPlanQueryWrapper.eq("create_user_id", userId);
       if (planState!=0){
           crmCustomerPlanQueryWrapper.eq("plan_state", planState);
       }
       if (StringUtil.isNotEmpty(planStartTime)){
           crmCustomerPlanQueryWrapper.eq("plan_start_time", planStartTime);
       }
       if (StringUtil.isNotEmpty(String.valueOf(emtCode))){
           crmCustomerPlanQueryWrapper.eq("emt_code", emtCode);
       }
       return crmCustomerPlanMapper.selectPage(pagelimit,crmCustomerPlanQueryWrapper);
   }

在Service層中,可以通過if和QueryWrapper實現(xiàn)動態(tài)SQL的查詢。
分頁,用到了Page對象,一定要是Mybatis的。然后調(diào)用selectPage,將對象和查詢條件傳入進去即可。

三、 總結(jié)

MybatisPlus是真的好用,省了我們寫很多的SQL語句 以及配置信息
Mybatis的分頁配置信息

  /**
   * 新的分頁插件
   */
  @Bean
  public MybatisPlusInterceptor mybatisPlusInterceptor() {
      MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
      mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
      return mybatisPlusInterceptor;
  }

到此這篇關(guān)于MybatisPlus實現(xiàn)分頁查詢和動態(tài)SQL查詢的示例代碼的文章就介紹到這了,更多相關(guān)MybatisPlus 分頁查詢和動態(tài)SQL查詢內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java中static關(guān)鍵字用法詳解

    java中static關(guān)鍵字用法詳解

    這篇文章主要為大家詳細介紹了java中static關(guān)鍵字的用法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • web中拖拽排序和java后臺交互實現(xiàn)方法示例

    web中拖拽排序和java后臺交互實現(xiàn)方法示例

    這篇文章主要給大家介紹了關(guān)于web中拖拽排序和java后臺交互實現(xiàn)的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-12-12
  • Java中Thread.join()的使用方法

    Java中Thread.join()的使用方法

    這篇文章主要介紹了Java中Thread.join()的使用方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • 客戶端設(shè)置超時時間真的很重要

    客戶端設(shè)置超時時間真的很重要

    今天小編就為大家分享一篇關(guān)于客戶端設(shè)置超時時間真的很重要,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • Java利用TreeUtils工具類實現(xiàn)列表轉(zhuǎn)樹

    Java利用TreeUtils工具類實現(xiàn)列表轉(zhuǎn)樹

    在開發(fā)過程中,總有列表轉(zhuǎn)樹的需求,幾乎是項目的標配,有沒有一種通用且跨項目的解決方式呢?本文將基于Java8的Lambda?表達式和Stream等知識,使用TreeUtils工具類實現(xiàn)一行代碼完成列表轉(zhuǎn)樹這一通用型需求,需要的可以參考一下
    2022-11-11
  • 詳解Java抽象類與普通類的區(qū)別

    詳解Java抽象類與普通類的區(qū)別

    今天給大家?guī)淼氖顷P(guān)于Java的相關(guān)知識,文章圍繞著Java抽象類與普通類的區(qū)別展開,文中有非常詳細的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • Spring Boot無縫集成MongoDB

    Spring Boot無縫集成MongoDB

    這篇文章主要介紹了Spring Boot無縫集成MongoDB的相關(guān)知識,本文涉及到MongoDB的概念和nosql的應(yīng)用場景,需要的朋友可以參考下
    2017-04-04
  • Mybatis與微服務(wù)注冊的詳細過程

    Mybatis與微服務(wù)注冊的詳細過程

    這篇文章主要介紹了Mybatis與微服務(wù)注冊,主要包括SpringBoot整合MybatisPlus,SpringBoot整合Freeamarker以及SpringBoot整合微服務(wù)&gateway&nginx的案例代碼,需要的朋友可以參考下
    2023-01-01
  • 關(guān)于mybatis mapper類注入失敗的解決方案

    關(guān)于mybatis mapper類注入失敗的解決方案

    這篇文章主要介紹了關(guān)于mybatis mapper類注入失敗的解決方案,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • 關(guān)于PreparedStatement的setObject作用及說明

    關(guān)于PreparedStatement的setObject作用及說明

    這篇文章主要介紹了關(guān)于PreparedStatement的setObject作用及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03

最新評論