欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

mybatis?like模糊查詢特殊字符報錯轉(zhuǎn)義處理方式

 更新時間:2022年01月14日 14:32:50   作者:不變不中  
這篇文章主要介紹了mybatis?like模糊查詢特殊字符報錯轉(zhuǎn)義處理方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

like模糊查詢特殊字符報錯轉(zhuǎn)義處理

方案1

?? ?<if test="projectName!=null and projectName!=''">
? ? ? ? ? ? <bind name="projectName_" value="'%'+projectName+'%'"/>
? ? ? ? ? ? AND info.name like #{projectName_}
? ? ? ? </if>

方案2

?? ?<if test="projectName!=null and projectName!=''">
? ? ? ? ? ? AND info.name like concat('%',#{projectName_},'%')
? ? ? ? </if>

like模糊查詢中包含有特殊字符(_、\、%)

使用MyBatis中的模糊查詢時,當查詢關(guān)鍵字中包括有_、\、%時,查詢關(guān)鍵字失效。

  • 當like中包含_時,查詢?nèi)詾槿浚?like '%_%'查詢出來的結(jié)果與like '%%'一致,并不能查詢出實際字段中包含有_特殊字符的結(jié)果條目
  • like中包括%時,與1中相同
  • like中包含\時,帶入查詢時,%%無法查詢到包含字段中有\(zhòng)的條目

處理

工具類:特殊字符轉(zhuǎn)義

import org.apache.commons.lang3.StringUtils;?
public class EscapeUtil {
? ? //mysql的模糊查詢時特殊字符轉(zhuǎn)義
? ? public static String escapeChar(String before){
? ? ? ? if(StringUtils.isNotBlank(before)){
? ? ? ? ? ? before = before.replaceAll("\\\\", "\\\\\\\\");
? ? ? ? ? ? before = before.replaceAll("_", "\\\\_");
? ? ? ? ? ? before = before.replaceAll("%", "\\\\%");
? ? ? ? }
? ? ? ? return before ;
? ? }
}

注意

以上方法在關(guān)鍵字中包含有\(zhòng)可能會失效,失效的原因是由于查詢的關(guān)鍵字的數(shù)據(jù)庫字段排序規(guī)則為utf8_unicode_ci,要想不失效,查詢的關(guān)鍵字的排序規(guī)則必須為utf8_general_ci,或者統(tǒng)一全部數(shù)據(jù)庫字符集與排序規(guī)則分別為:utf8mb4與utf8mb4_general_ci

這些僅為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。 

相關(guān)文章

  • 走進SpringBoot之配置文件與多環(huán)境詳解

    走進SpringBoot之配置文件與多環(huán)境詳解

    這篇文章主要介紹了走進SpringBoot之配置文件與多環(huán)境,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-05-05
  • IntelliJ IDEA修改新建文件自動生成注釋的user名

    IntelliJ IDEA修改新建文件自動生成注釋的user名

    今天小編就為大家分享一篇關(guān)于IntelliJ IDEA修改新建文件自動生成注釋的user名,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-10-10
  • 在Spring Boot中實現(xiàn)HTTP緩存的方法

    在Spring Boot中實現(xiàn)HTTP緩存的方法

    緩存是HTTP協(xié)議的一個強大功能,但由于某些原因,它主要用于靜態(tài)資源,如圖像,CSS樣式表或JavaScript文件。本文重點給大家介紹在Spring Boot中實現(xiàn)HTTP緩存的方法,感興趣的朋友跟隨小編一起看看吧
    2018-10-10
  • Java程序執(zhí)行過程及內(nèi)存機制詳解

    Java程序執(zhí)行過程及內(nèi)存機制詳解

    本講將介紹Java代碼是如何一步步運行起來的,還會介紹Java程序所占用的內(nèi)存是被如何管理的:堆、棧和方法區(qū)都各自負責存儲哪些內(nèi)容,感興趣的朋友跟隨小編一起看看吧
    2020-12-12
  • 解決Spring Cloud Gateway獲取body內(nèi)容,不影響GET請求的操作

    解決Spring Cloud Gateway獲取body內(nèi)容,不影響GET請求的操作

    這篇文章主要介紹了解決Spring Cloud Gateway獲取body內(nèi)容,不影響GET請求的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • Java通過freemarker生成Word文檔導出的方式詳解

    Java通過freemarker生成Word文檔導出的方式詳解

    本文詳細介紹了如何使用FreeMarker模板生成Word文檔,包括制作FTL模板、在Java中使用FreeMarker生成文檔以及處理動態(tài)數(shù)據(jù)和合并單元格等內(nèi)容,需要的朋友可以參考下
    2025-03-03
  • 如何通過Maven倉庫安裝Spire系列的Java產(chǎn)品

    如何通過Maven倉庫安裝Spire系列的Java產(chǎn)品

    這篇文章主要介紹了如何通過Maven倉庫安裝Spire系列的Java產(chǎn)品,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-07-07
  • 四步輕松搞定java web每天定時執(zhí)行任務

    四步輕松搞定java web每天定時執(zhí)行任務

    本篇文章主要介紹了四步輕松搞定java web每天定時執(zhí)行任務,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-01-01
  • Java AWT中常用的三種布局管理器詳解

    Java AWT中常用的三種布局管理器詳解

    這篇文章主要介紹了Java AWT中常用的三種布局管理器詳解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • Java實現(xiàn)掃雷游戲詳細代碼講解

    Java實現(xiàn)掃雷游戲詳細代碼講解

    windows自帶的游戲《掃雷》是陪伴了無數(shù)人的經(jīng)典游戲,本文將利用Java語言實現(xiàn)這一經(jīng)典的游戲,文中的示例代碼講解詳細,感興趣的可以學習一下
    2022-05-05

最新評論