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

mysql中的concat()函數(shù)模糊查詢代替${}問(wèn)題

 更新時(shí)間:2023年08月31日 09:38:22   作者:taiguolaotu  
這篇文章主要介紹了mysql中的concat()函數(shù)模糊查詢代替${}問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

mysql concat()函數(shù) 模糊查詢 代替${}

平常在寫(xiě)代碼的時(shí)候,在寫(xiě)模糊查詢的時(shí)候,一直都是使用 字段名 like ${}的方式,但是自從換了一家公司之后,發(fā)現(xiàn)分頁(yè)進(jìn)行模糊查詢時(shí)使用了 concat函數(shù),

下面我將sql語(yǔ)句復(fù)制過(guò)來(lái),給大家參考一下 ,希望可以幫助到大家。

 <select id="countDeviceByKeyword" resultType="java.lang.Integer">
  		select count(*) from zz_device where isDel='0'
  		and (Device_Name like concat('%',#{keyword},'%')
  		OR Device_Alias LIKE concat('%',#{keyword},'%'))
  </select>

這里寫(xiě)的是sql語(yǔ)句,

下面把對(duì)應(yīng)的dao層方法展現(xiàn)給大家

 int countDeviceByKeyword(String keyword);

mysql模糊查詢的三種方式

Mybatis常用模糊查詢方法

  • 直接使用 % 字符串拼接,如 ‘%’#{name}‘%’ 或 “%”#{name}“%”,單引號(hào)或雙引號(hào)都可以。
  • 使用’%${name}%',會(huì)有SQL注入危險(xiǎn)
  • 使用函數(shù)concat拼接concat(“%”,#{name},“%”)

1.使用concat(“%”,#{name},“%”)

UserMapper.xml文件:

 <select id="selectUsersByCondition" resultType="qin.com.entity.Users" parameterType="Users">
        select * from users
        <where>
            <if test="name != null and name != ''">
                <!--
                and name like concat(concat("%",#{name},"%"))
                ==>  Preparing: select * from users WHERE name like concat(concat("%",?,"%")) order by id desc
                -->
                and name like concat("%",#{name},"%")
            </if>
            <if test="sex != null and sex != ''">
                and sex = #{sex}
            </if>
            <if test="birthday != null and birthday != ''">
                and birthday = #{birthday}
            </if>
            <if test="createTime != null and createTime != ''">
                and createTime>=#{createTime}
            </if>
            <if test="updateTime != null and updateTime != ''">
                and updateTime &lt;= #{updateTime}
            </if>
        </where>
        order by id desc
    </select>

Test測(cè)試代碼

@Test
    public void testSelectUsersByCondition() {
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
        UsersService usersService =(UsersService) applicationContext.getBean("usersService");
        Users users = new Users();
        users.setName("小");
        List<Users> list = usersService.selectUsersByCondition(users);
        list.forEach(users1 -> System.out.println("根據(jù)條件查詢用戶信息:"+users1));
    }

輸出結(jié)果:

查詢語(yǔ)句
==> Preparing: select * from users WHERE name like concat(“%”,?,“%”) order by id desc
==> Parameters: 小(String)

2.使用’%${name}%’

UserMapper.xml文件:

 <if test="name != null and name != ''">
	   <!--and name like '%${name}%'-->
	   and name like '%${name}%'
 </if>

輸出結(jié)果:

==> Preparing: select * from users WHERE name like ‘%小%’ order by id desc
==> Parameters:

3.使用"%“#{name}”%"

<if test="name != null and name != ''">
   and name like "%"#{name}"%"
</if>

輸出語(yǔ)句:

==> Preparing: select * from users WHERE name like “%”?“%” order by id desc
==> Parameters: 小(String)

心得

推薦使用第一和第三種方式

總結(jié)

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

相關(guān)文章

  • Mysql之服務(wù)的啟動(dòng)、停止、重啟方式

    Mysql之服務(wù)的啟動(dòng)、停止、重啟方式

    本文介紹了在終端操作命令以及處理隱藏文件夾的兩種方法:一種是直接在終端輸入命令啟動(dòng)、停止和重啟;另一種是通過(guò)拖拽文件到終端并添加命令如start或stop,同時(shí),介紹了如何通過(guò)命令顯示隱藏的usr文件夾并重新啟動(dòng)Finder以訪問(wèn)
    2024-10-10
  • 詳解Mysql之mysqlbackup備份與恢復(fù)實(shí)踐

    詳解Mysql之mysqlbackup備份與恢復(fù)實(shí)踐

    這篇文章主要介紹了詳解Mysql之mysqlbackup備份與恢復(fù)實(shí)踐,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • Linux服務(wù)上MySQL啟動(dòng)、重啟和關(guān)閉的操作方法

    Linux服務(wù)上MySQL啟動(dòng)、重啟和關(guān)閉的操作方法

    MySQL是一種廣泛使用的開(kāi)源關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),常用于各種規(guī)模的應(yīng)用程序中,在Linux服務(wù)器上管理MySQL服務(wù)是一個(gè)基本的運(yùn)維任務(wù),本文將詳細(xì)介紹如何在Linux系統(tǒng)上啟動(dòng)、重啟和關(guān)閉MySQL服務(wù),涵蓋不同Linux發(fā)行版(如Ubuntu和CentOS)的操作方法
    2024-11-11
  • 詳解MySQL高可用MMM搭建方案及架構(gòu)原理

    詳解MySQL高可用MMM搭建方案及架構(gòu)原理

    本篇文章主要介紹搭建MMM方案以及MMM架構(gòu)的原理。這里不介紹主從、主主的搭建方法,MMM方案不適用對(duì)數(shù)據(jù)一致性要求很高的業(yè)務(wù)。下面一起來(lái)學(xué)習(xí)學(xué)習(xí)。
    2016-08-08
  • 一條慢SQL語(yǔ)句引發(fā)的改造之路

    一條慢SQL語(yǔ)句引發(fā)的改造之路

    這篇文章主要給大家介紹了關(guān)于一條慢SQL語(yǔ)句引發(fā)的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2022-03-03
  • mysql中的不等于實(shí)例詳解

    mysql中的不等于實(shí)例詳解

    這篇文章主要介紹了mysql中的不等于實(shí)例詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-04-04
  • linux下安裝mysql及mysql.sock問(wèn)題

    linux下安裝mysql及mysql.sock問(wèn)題

    最近在linux上裝mysql時(shí)遇到一些棘手的問(wèn)題,百思不得其解,下面小編給大家?guī)?lái)了linux下安裝mysql及mysql.sock問(wèn)題,感興趣的朋友一起看看吧
    2018-03-03
  • 一次Mysql死鎖排查過(guò)程的全紀(jì)錄

    一次Mysql死鎖排查過(guò)程的全紀(jì)錄

    在測(cè)試環(huán)境測(cè)試給用戶并發(fā)發(fā)送卡券時(shí),出現(xiàn)了死鎖,通過(guò)查找相關(guān)的資料解決了這個(gè),所以想著總結(jié)出來(lái),所以下面這篇文章主要是關(guān)于一次Mysql死鎖排查過(guò)程的全紀(jì)錄,需要的朋友可以參考下,希望大家從中能有所幫助。
    2017-02-02
  • MySQL中count(*)深度解析與性能優(yōu)化實(shí)踐案例

    MySQL中count(*)深度解析與性能優(yōu)化實(shí)踐案例

    這篇文章給大家介紹MySQL中count(*)深度解析與性能優(yōu)化實(shí)踐,本文將結(jié)合實(shí)際測(cè)試案例,從原理到實(shí)踐,帶你徹底搞懂count(*),并分享3種高效優(yōu)化count()性能的方案,感興趣的朋友跟隨小編一起看看吧
    2025-12-12
  • MySQL 8.0 驅(qū)動(dòng)與阿里druid版本兼容問(wèn)題解決

    MySQL 8.0 驅(qū)動(dòng)與阿里druid版本兼容問(wèn)題解決

    MySQL 8.0 驅(qū)動(dòng)與阿里druid版本不兼容會(huì)導(dǎo)致有報(bào)錯(cuò)問(wèn)題,本文就詳細(xì)的介紹一下解決方法,具有一定的參考價(jià)值,感興趣的可以了解一下
    2021-07-07

最新評(píng)論

炉霍县| 赞皇县| 友谊县| 革吉县| 安吉县| 泗阳县| 洞头县| 阳曲县| 谢通门县| 文山县| 河源市| 建湖县| 拜城县| 长顺县| 界首市| 乌兰县| 炎陵县| 宁都县| 玉树县| 漳平市| 宣化县| 临沂市| 新宾| 浦北县| 肃南| 武平县| 渭南市| 闽清县| 钟祥市| 台南县| 三门县| 黄平县| 景谷| 镇赉县| 桐柏县| 南丹县| 隆子县| 阳泉市| 双城市| 衢州市| 周宁县|