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

MyBatis解決模糊查詢包含特殊字符問題

 更新時間:2023年02月07日 16:33:41   作者:在奮斗的大道  
這篇文章主要介紹了MyBatis解決模糊查詢包含特殊字符問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

MyBatis解決模糊查詢包含特殊字符

第一塊:MyBatis 實現(xiàn)模糊查詢方式

1.1  sql中字符串拼接

SELECT * FROM 表名 WHERE 字段名 LIKE CONCAT(CONCAT('%', #{參數(shù)}), '%');

1 2. 使用 ${...} 代替 #{...}

SELECT * FROM 表名 WHERE 字段名 LIKE '%${參數(shù)}%';?

注意:($不能防止sql注入, #{}---> 可以防止sql注入的問題)

1.3 程序中拼接

Java 代碼

String searchText = new StringBuilder("%").append(text).append("%").toString();?
parameterMap.put("text", searchText);

Mapper 映射文件

SELECT * FROM 表名 WHERE 字段名 LIKE #{參數(shù)};

第二塊:MyBatis 實現(xiàn)特殊字符處理之<![CDATA[ ]]>

2.1 <![CDATA[ ]]> 簡介

它的全稱為character data,以"<![CDATA[ "開始,以" ]]>" 結(jié)束,在兩者之間嵌入不想被解析程序解析的原始數(shù)據(jù),解析器不對CDATA區(qū)中的內(nèi)容進(jìn)行解析,而是將這些數(shù)據(jù)原封不動地交給下游程序處理。

2.2 MyBatis 自動轉(zhuǎn)義特殊字符表

特殊字符替代符號
&&amp;
<&lt;
>&gt;
"&quot;
'&apos;

2.3 <![CDATA[ ]]> 特殊字符

xml 中表示:   <= 小于等于、    >= 大于等于 需加  這樣的標(biāo)記:     <![CDATA[   ]]>      xml中有&的符號,需要

  • <![CDATA[&]]>這樣表示&
  • <= 小于等于 :<![CDATA[ <= ]]>
  • >= 大于等于:<![CDATA[  >=  ]]>

第三塊:模糊查詢包含特殊字符

解決辦法:使用 ${...} + <![CDATA[ ]]>

模板:

? <select id="searchAll" parameterType="map" resultType="map">
?? ?SELECT?
?? ??? ?*
? ? FROM ?表名 P
? ?? ?WHERE 1=1?
?? ?<if test="參數(shù) != null and 參數(shù) != ''">
?? ??? ?<![CDATA[ AND P.字段名 LIKE '%${參數(shù)}%']]>
?? ?</if>

MyBatis模糊查詢時對特殊字符"%"和"_"的處理

問題

輸入"%“或”_",查詢結(jié)果為全部數(shù)據(jù),且無法查詢到帶有"%"或者下劃線 的數(shù)據(jù)。

解決

對特殊字符轉(zhuǎn)義

例如查詢字段為 name

若name中含有"%“或 “_” 轉(zhuǎn)為”/%" “/ _”

public void setName(String name) {
? ? ? ? this.name = StringUtils.isBlank(name) ? null : EscapeUtil.escapeChar(name);
? ? }
package com.xpf.util;

import org.apache.commons.lang3.StringUtils;

/**
?* @Title:EscapeUtil
?* @Package:com.xpf.util
?* @Author: xiapf
?* @Date:2019/9/20
?* @Descrption:
?*/
public class EscapeUtil {
? ? /**
? ? ?* mysql的模糊查詢時特殊字符轉(zhuǎn)義
? ? ?*/
? ? public static String escapeChar(String before){
? ? ? ? if(StringUtils.isNotBlank(before)){
? ? ? ? ? ? before = before.replaceAll("_", "/_");
? ? ? ? ? ? before = before.replaceAll("%", "/%");
? ? ? ? }
? ? ? ? return before.trim() ;
? ? }
}

mapper中模糊查詢語句

name like CONCAT('%',#{name},'%') ESCAPE '/'

總結(jié)

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

相關(guān)文章

  • SpringBoot項目如何打包成war包

    SpringBoot項目如何打包成war包

    使用SpringBoot 開發(fā)項目,由于內(nèi)置了Tomcat,所以項目可以直接啟動,部署到服務(wù)器的時候,直接打成 jar 包,就可以運(yùn)行了,這篇文章主要介紹了SpringBoot項目如何打包成war包,需要的朋友可以參考下
    2024-07-07
  • java實現(xiàn)將結(jié)果集封裝到List中的方法

    java實現(xiàn)將結(jié)果集封裝到List中的方法

    這篇文章主要介紹了java實現(xiàn)將結(jié)果集封裝到List中的方法,涉及java數(shù)據(jù)庫查詢及結(jié)果集轉(zhuǎn)換的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2016-07-07
  • Java計算兩個時間段的差的實例詳解

    Java計算兩個時間段的差的實例詳解

    在本篇內(nèi)容中,我們給大家整理了關(guān)于Java計算兩個時間段的差的實例內(nèi)容,并做了詳細(xì)分析,有需要的朋友們學(xué)習(xí)下。
    2022-11-11
  • 詳解如何解析pom文件方法示例

    詳解如何解析pom文件方法示例

    這篇文章主要為大家介紹了詳解如何解析pom文件方法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • springboot打包jar和war包的教程圖解

    springboot打包jar和war包的教程圖解

    這篇文章主要介紹了springboot打包jar和war包的方法,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-06
  • SpringBoot 如何實現(xiàn)異步編程

    SpringBoot 如何實現(xiàn)異步編程

    在SpringBoot的日常開發(fā)中,一般都是同步調(diào)用的,但實際中有很多場景非常適合使用異步來處理,本文就詳細(xì)的介紹一下SpringBoot 如何實現(xiàn)異步編程 ,具有一定的參考價值,感興趣的可以了解一下
    2021-12-12
  • Java中Iterator(迭代器)的用法詳解

    Java中Iterator(迭代器)的用法詳解

    Java迭代器(Iterator)是?Java?集合框架中的一種機(jī)制,它提供了一種在不暴露集合內(nèi)部實現(xiàn)的情況下遍歷集合元素的方法。本文主要介紹了它的使用方法,希望對大家有所幫助
    2023-05-05
  • 淺談maven的jar包和war包區(qū)別 以及打包方法

    淺談maven的jar包和war包區(qū)別 以及打包方法

    下面小編就為大家分享一篇淺談maven的jar包和war包區(qū)別 以及打包方法,具有很好的參考價值,希望對大家有所幫助
    2017-11-11
  • 使用Maven搭建SpringMVC項目的步驟(圖文教程)

    使用Maven搭建SpringMVC項目的步驟(圖文教程)

    本篇文章主要介紹了使用Maven搭建SpringMVC項目的步驟(圖文教程),非常具有實用價值,需要的朋友可以參考下
    2017-09-09
  • Spring boot從安裝到交互功能實現(xiàn)零基礎(chǔ)全程詳解

    Spring boot從安裝到交互功能實現(xiàn)零基礎(chǔ)全程詳解

    這篇文章主要介紹了Spring boot從安裝到交互功能得實現(xiàn)全程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07

最新評論

高唐县| 南丰县| 周口市| 奉新县| 富顺县| 博湖县| 保亭| 大连市| 静乐县| 香河县| 元江| 砚山县| 张家港市| 延寿县| 文水县| 安康市| 科技| 晴隆县| 南丰县| 白山市| 堆龙德庆县| 孝义市| 大埔县| 汝南县| 武隆县| 丰镇市| 蒙山县| 安平县| 高青县| 罗甸县| 朔州市| 青州市| 本溪| 六安市| 万宁市| 江西省| 五指山市| 彰化市| 沭阳县| 焦作市| 泊头市|