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

mybatis模糊查詢like語句該如何寫

 更新時(shí)間:2024年09月23日 09:07:04   作者:剽悍一小兔  
MyBatis模糊查詢通常使用LIKE關(guān)鍵字,結(jié)合concat函數(shù)拼接通配符%實(shí)現(xiàn),在MyBatis配置文件中,通過#{keyword}傳遞參數(shù),生成帶有通配符的查詢語句,MyBatis-Plus中,通過LambdaQueryWrapper類和like方法構(gòu)建模糊查詢條件,簡化查詢操作

具體實(shí)現(xiàn)

在 MyBatis 中,模糊查詢可以通過在 SQL 語句中使用 like 關(guān)鍵字來實(shí)現(xiàn)。

如下所示:

<select id="findUsersByKeyword" parameterType="String" resultType="User">
  select * from user
  where username like concat('%', #{keyword}, '%')
</select>

其中,#{keyword} 是傳入的參數(shù),concat 函數(shù)用于拼接字符串,% 表示任意字符。

在 Java 代碼中調(diào)用該方法:

List<User> users = sqlSession.selectList("findUsersByKeyword", "Tom");

這樣,就可以查詢到用戶名中包含 "Tom" 的所有用戶。

這段 MyBatis 的 SQL 語句可以被解析成類似于以下的 SQL 語句:

為什么這樣做

select * from user where username like '%Tom%' 

這段 SQL 語句使用了 LIKE 關(guān)鍵字來進(jìn)行模糊查詢。

在 MyBatis 中,使用 concat 函數(shù)將 SQL 語句的拼接操作通過 Mapper 配置文件傳遞進(jìn)來,并把需要查詢的關(guān)鍵詞作為參數(shù)傳入 SQL 語句中,就可以使用 LIKE 進(jìn)行模糊查詢了。

具體來說,使用了 #{keyword} 占位符號(hào)的 SQL 語句將作為參數(shù)傳入對(duì)應(yīng)的 Mapper 接口的實(shí)現(xiàn)方法中,即

List<User> users = sqlSession.selectList("findUsersByKeyword", "Tom");

最終,MyBatis 會(huì)把 #{keyword} 替換為 "Tom",生成完整的 SQL 語句并執(zhí)行查詢操作,返回符合條件的結(jié)果列表。

myabtis-plus

在 MyBatis-Plus 中,模糊查詢也可以使用 Like 函數(shù)來實(shí)現(xiàn)。假設(shè)我們有一個(gè) User 實(shí)體類,需要根據(jù)用戶名進(jìn)行模糊查詢,實(shí)現(xiàn)方式如下:

@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {

    @Override
    public List<User> findUsersByKeyword(String keyword) {
        LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.like(User::getUsername, keyword);
        return baseMapper.selectList(queryWrapper);
    }
}

注意到這里我們使用了 LambdaQueryWrapper 類來構(gòu)建查詢條件,其中調(diào)用了 like 方法,類似于 SQL 語句中的 LIKE。

User::getUsername 是 Java 8 中的方法引用,用于獲取 User 實(shí)體中的用戶名屬性,keyword 是查詢關(guān)鍵詞,即需要查詢的模糊匹配字符串。

最后,調(diào)用 selectList 方法會(huì)將 queryWrapper 中構(gòu)建的查詢條件通過 Mybatis-plus 進(jìn)行解析,自動(dòng)生成對(duì)應(yīng)的 SQL 語句,根據(jù)由 Mybatis-plus 自動(dòng)生成的 SQL 語句進(jìn)行數(shù)據(jù)庫查詢,并返回符合條件的結(jié)果列表。

需要注意的是,在使用 LambdaQueryWrapper 進(jìn)行模糊查詢時(shí),可采用不同類型的 like,如 likeLeft、likeRight 等等,用于在模糊匹配時(shí)指定模糊匹配的位置。在具體實(shí)現(xiàn)時(shí),應(yīng)根據(jù)實(shí)際需求進(jìn)行選擇。

總結(jié)

在 MyBatis 中,使用 like 關(guān)鍵字進(jìn)行模糊查詢,可通過在 SQL 語句中使用 concat() 函數(shù)將需要查詢的關(guān)鍵詞拼接到 SQL 語句中實(shí)現(xiàn)。

在 MyBatis-Plus 中,使用 LambdaQueryWrapper 類構(gòu)建查詢條件,通過調(diào)用 like 方法進(jìn)行模糊查詢,用于獲取對(duì)應(yīng)實(shí)體的屬性并指定查詢關(guān)鍵詞。

總的來說,模糊匹配是 SQL 查詢中比較常用的一種方式,MyBatis 和 MyBatis-Plus 都能夠很方便地支持模糊查詢,具體實(shí)現(xiàn)根據(jù)項(xiàng)目需要進(jìn)行選擇。

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

相關(guān)文章

  • Spring事件監(jiān)聽機(jī)制之@EventListener實(shí)現(xiàn)方式詳解

    Spring事件監(jiān)聽機(jī)制之@EventListener實(shí)現(xiàn)方式詳解

    這篇文章主要介紹了Spring事件監(jiān)聽機(jī)制之@EventListener實(shí)現(xiàn)方式詳解,ApplicationContext的refresh方法還是初始化了SimpleApplicationEventMulticaster,發(fā)送事件式還是先獲取ResolvableType類型,再獲取發(fā)送監(jiān)聽列表,需要的朋友可以參考下
    2023-12-12
  • Java Agents代理是什么

    Java Agents代理是什么

    Java代理Agents通過提供使我們能夠侵入JVM中正在運(yùn)行的Java程序的服務(wù),在最底層工作。Java的這一強(qiáng)大但不可思議的部分具有在錯(cuò)誤操作時(shí)使JVM崩潰的能力。本文簡要介紹了這個(gè)概念,并介紹了它的工作原理。需要的朋友可以參考下面文章的具體內(nèi)容
    2021-09-09
  • Java rmi遠(yuǎn)程方法調(diào)用基本用法解析

    Java rmi遠(yuǎn)程方法調(diào)用基本用法解析

    這篇文章主要介紹了Java rmi遠(yuǎn)程方法調(diào)用基本用法解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-05-05
  • springboot+vue實(shí)現(xiàn)阿里云oss大文件分片上傳的示例代碼

    springboot+vue實(shí)現(xiàn)阿里云oss大文件分片上傳的示例代碼

    阿里云推出了直傳,本文主要介紹了springboot+vue實(shí)現(xiàn)阿里云oss大文件分片上傳的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-06-06
  • ZooKeeper入門教程二在單機(jī)和集群環(huán)境下的安裝搭建及使用

    ZooKeeper入門教程二在單機(jī)和集群環(huán)境下的安裝搭建及使用

    本文是ZooKeeper入門系列教程,涵蓋ZooKeeper的安裝使及單機(jī)集群環(huán)境搭建,通過實(shí)例和大量圖表,結(jié)合實(shí)戰(zhàn),幫助學(xué)習(xí)者理解和運(yùn)用,有需要的朋友可以借鑒參考下
    2022-01-01
  • java 字符串截取的實(shí)例詳解

    java 字符串截取的實(shí)例詳解

    這篇文章主要介紹了java 字符串截取的實(shí)例詳解的相關(guān)資料,希望通過本文能幫助到大家,需要的朋友可以參考下
    2017-09-09
  • Java利用Apache PDFBox實(shí)現(xiàn)將PDF保存為圖片

    Java利用Apache PDFBox實(shí)現(xiàn)將PDF保存為圖片

    將 PDF 文件轉(zhuǎn)換為圖片是常見的需求之一,特別是在需要將 PDF 內(nèi)容以圖像形式展示或處理時(shí),其中最常用的是 Apache PDFBox,下面我們就來看看具體實(shí)現(xiàn)方法吧
    2026-02-02
  • Java中Scanner使用方式:單行/多行輸入

    Java中Scanner使用方式:單行/多行輸入

    這篇文章主要介紹了Java中Scanner使用方式:單行/多行輸入,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • SpringBoot+WebSocket實(shí)現(xiàn)即時(shí)通訊功能(J2EE方式)

    SpringBoot+WebSocket實(shí)現(xiàn)即時(shí)通訊功能(J2EE方式)

    WebSocket是一種在單個(gè)TCP連接上進(jìn)行全雙工通信的協(xié)議,WebSocket使得客戶端和服務(wù)器之間的數(shù)據(jù)交換變得更加簡單,允許服務(wù)端主動(dòng)向客戶端推送數(shù)據(jù),本文給大家介紹了SpringBoot+WebSocket實(shí)現(xiàn)即時(shí)通訊功能(J2EE方式),需要的朋友可以參考下
    2025-01-01
  • springboot項(xiàng)目攔截器重定向循環(huán)問題的解決

    springboot項(xiàng)目攔截器重定向循環(huán)問題的解決

    這篇文章主要介紹了springboot項(xiàng)目攔截器重定向循環(huán)問題的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09

最新評(píng)論

日喀则市| 聊城市| 北川| 贵阳市| 宽城| 虎林市| 安泽县| 平定县| 白山市| 定远县| 秦皇岛市| 泽普县| 社会| 福海县| 聂荣县| 青岛市| 西吉县| 内江市| 安西县| 鲁山县| 满城县| 贵州省| 通渭县| 石柱| 锡林浩特市| 北京市| 安徽省| 淅川县| 遵化市| 雅安市| 涿鹿县| 同心县| 永和县| 湘西| 婺源县| 岱山县| 阿城市| 荔波县| 界首市| 高平市| 北京市|