Mybatisplus條件查詢詳解

一、Mybatisplus條件查詢關鍵詞

Mybatisplus是基於Mybatis的增強工具,在Mybatis的基礎上只是進行了增強,因此其關鍵詞和Mybatis的關鍵詞大體相同,這些關鍵詞包括Select、From、Where、Group By、Having、Order By等常見關鍵詞。Mybatisplus還增加了一些特有的查詢關鍵詞,如:eq、ne、lt、le、gt、ge等,後面會講到。

二、Mybatisplus條件查詢日期

在實際項目中,我們常常需要按照日期進行查詢,例如查詢當天的數據、查詢某個日期範圍內的數據等。Mybatisplus提供了兩種方式來支持日期查詢:

1.通過使用實現JDBC規範的Date、Time、Timestamp類型來進行日期查詢。

2.通過使用Java8中的LocalDateTime類型來進行日期查詢。

// 使用JDBC規範的Date類型查詢當天的數據
List userList = userMapper.selectList(new QueryWrapper()
    .lambda()
    .eq(User::getCreateTime, new Date()));

// 使用Java8中的LocalDateTime類型查詢某個日期範圍內的數據
LocalDateTime startTime = LocalDateTime.now().minusDays(7);
LocalDateTime endTime = LocalDateTime.now();
List userList = userMapper.selectList(new QueryWrapper()
    .lambda()
    .between(User::getCreateTime, startTime, endTime));

三、Mybatisplus條件查詢疊加

疊加查詢用於查詢多個條件,例如查詢年齡大於18歲且性別為男性的用戶數據。 Mybatisplus提供了lambda方法進行疊加查詢,疊加查詢的條件可以通過and、or進行組合:

// 查詢年齡大於18歲且性別為男性的用戶數據
List userList = userMapper.selectList(new QueryWrapper()
    .lambda()
    .gt(User::getAge, 18)
    .and(user -> user.eq(User::getGender, "male")));

四、Mybatisplus條件查詢 一條數據

在實際項目中,我們通常只需要查詢一條數據,例如查詢某個用戶的詳細信息。Mybatisplus提供了單表查詢的方式來查詢一條數據:

// 查詢id為1的用戶的詳細信息
User user = userMapper.selectOne(new QueryWrapper()
    .lambda()
    .eq(User::getId, 1));

五、Mybatisplus條件查詢分頁

分頁查詢在實際項目中非常常見,例如在管理後台列表顯示時,需要支持分頁查詢。Mybatisplus提供了分頁查詢的方式通過Page對象進行實現:

// 第1頁,每頁顯示10條數據
Page page = new Page(1, 10);
// 查詢所有的用戶數據並進行分頁
IPage userPage = userMapper.selectPage(page, new QueryWrapper());
// 獲取分頁查詢結果
List userList = userPage.getRecords();

六、Mybatisplus條件查詢中的eq的作用

在Mybatisplus條件查詢中,一些特殊的查詢關鍵詞被定義為函數,例如在查詢中使用eq可以將條件轉換成等於的形式,如下:

// 將條件轉換為等於的形式
new QueryWrapper()
    .eq("age", 18)
    .eq("gender", "male");

// 可以使用一下方式進行簡化
new QueryWrapper()
    .eq("age", 18, true);

七、Mybatisplus條件查詢一條

在Mybatisplus條件查詢中,我們可以通過selectOne方法查詢一條數據的方式來獲取對應的一條數據的詳細信息:

// 查詢id為1的用戶的詳細信息
User user = userMapper.selectOne(new QueryWrapper()
    .lambda()
    .eq(User::getId, 1));

八、Mybatisplus條件查詢不等於

在Mybatisplus條件查詢中,我們可以使用ne函數來代替””進行不等於的查詢:

// 查詢age不等於18的用戶數據
new QueryWrapper()
    .ne("age", 18);

九、Mybatisplus條件查詢條件

在Mybatisplus條件查詢中,我們可以通過and、or等關鍵詞將多個查詢條件進行組合:

// 查詢年齡大於18且性別為男性或女性的用戶數據
new QueryWrapper()
    .lambda()
    .gt(User::getAge, 18)
    .and(user -> user.eq(User::getGender, "male").or().eq(User::getGender, "female"));

以上就是Mybatisplus條件查詢的詳細介紹,具體用法基本與Mybatis相同,但是Mybatisplus使得我們更加方便快捷地進行實際項目的開發。

原創文章,作者:ORNV,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/138591.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
ORNV的頭像ORNV
上一篇 2024-10-04 00:21
下一篇 2024-10-04 00:21

相關推薦

  • 條件運算符(?:)是什麼意思?

    條件運算符(?:)是JavaScript中的一種特殊的運算符,也是許多編程語言中相似語法的一部分。它可以允許我們在一個簡單、一行的語句中完成條件判斷和賦值操作,非常方便。 1.語法…

    編程 2025-04-29
  • Django ORM如何實現或的條件查詢

    在我們使用Django進行資料庫操作的時候,查詢條件往往不止一個,一個好的查詢語句需要考慮我們的查詢要求以及業務場景。在實際工作中,我們經常需要使用或的條件進行查詢,本文將詳細介紹…

    編程 2025-04-29
  • 素數條件Python

    本文將對素數條件Python進行詳細闡述,介紹其概念、優缺點及應用場景。 一、概念 素數條件Python是一種基於Python語言的編程模式,其特點在於對於給定自然數$x$,判斷其…

    編程 2025-04-27
  • Python中不滿足條件重複執行的解決方法

    本文將以Python中不滿足條件重複執行為中心,從多個方面進行詳細闡述解決方法。 一、while循環 while循環是Python中常用的循環語句之一,它可以用於重複執行一段代碼,…

    編程 2025-04-27
  • Linux sync詳解

    一、sync概述 sync是Linux中一個非常重要的命令,它可以將文件系統緩存中的內容,強制寫入磁碟中。在執行sync之前,所有的文件系統更新將不會立即寫入磁碟,而是先緩存在內存…

    編程 2025-04-25
  • 神經網路代碼詳解

    神經網路作為一種人工智慧技術,被廣泛應用於語音識別、圖像識別、自然語言處理等領域。而神經網路的模型編寫,離不開代碼。本文將從多個方面詳細闡述神經網路模型編寫的代碼技術。 一、神經網…

    編程 2025-04-25
  • git config user.name的詳解

    一、為什麼要使用git config user.name? git是一個非常流行的分散式版本控制系統,很多程序員都會用到它。在使用git commit提交代碼時,需要記錄commi…

    編程 2025-04-25
  • Linux修改文件名命令詳解

    在Linux系統中,修改文件名是一個很常見的操作。Linux提供了多種方式來修改文件名,這篇文章將介紹Linux修改文件名的詳細操作。 一、mv命令 mv命令是Linux下的常用命…

    編程 2025-04-25
  • Python輸入輸出詳解

    一、文件讀寫 Python中文件的讀寫操作是必不可少的基本技能之一。讀寫文件分別使用open()函數中的’r’和’w’參數,讀取文件…

    編程 2025-04-25
  • nginx與apache應用開發詳解

    一、概述 nginx和apache都是常見的web伺服器。nginx是一個高性能的反向代理web伺服器,將負載均衡和緩存集成在了一起,可以動靜分離。apache是一個可擴展的web…

    編程 2025-04-25

發表回復

登錄後才能評論