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

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

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

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

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

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

 <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>

這里寫的是sql語句,

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

 int countDeviceByKeyword(String keyword);

mysql模糊查詢的三種方式

Mybatis常用模糊查詢方法

  • 直接使用 % 字符串拼接,如 ‘%’#{name}‘%’ 或 “%”#{name}“%”,單引號或雙引號都可以。
  • 使用’%${name}%',會有SQL注入危險
  • 使用函數(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測試代碼

@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é)果:

查詢語句
==> 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>

輸出語句:

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

心得

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

總結(jié)

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

相關(guān)文章

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

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

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

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

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

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

    MySQL是一種廣泛使用的開源關(guān)系型數(shù)據(jù)庫管理系統(tǒng),常用于各種規(guī)模的應(yīng)用程序中,在Linux服務(wù)器上管理MySQL服務(wù)是一個基本的運維任務(wù),本文將詳細介紹如何在Linux系統(tǒ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方案不適用對數(shù)據(jù)一致性要求很高的業(yè)務(wù)。下面一起來學(xué)習(xí)學(xué)習(xí)。
    2016-08-08
  • 一條慢SQL語句引發(fā)的改造之路

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

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

    mysql中的不等于實例詳解

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

    linux下安裝mysql及mysql.sock問題

    最近在linux上裝mysql時遇到一些棘手的問題,百思不得其解,下面小編給大家?guī)砹薼inux下安裝mysql及mysql.sock問題,感興趣的朋友一起看看吧
    2018-03-03
  • 一次Mysql死鎖排查過程的全紀錄

    一次Mysql死鎖排查過程的全紀錄

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

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

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

    MySQL 8.0 驅(qū)動與阿里druid版本兼容問題解決

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

最新評論

浙江省| 永州市| 富宁县| 五寨县| 平昌县| 金塔县| 松阳县| 岱山县| 林周县| 巴林右旗| 安阳市| 鄂伦春自治旗| 大宁县| 河间市| 轮台县| 平果县| 醴陵市| 上饶市| 南陵县| 浦城县| 鄄城县| 兴海县| 浦江县| 天镇县| 盐边县| 北川| 秦安县| 毕节市| 乌拉特前旗| 珠海市| 鹿泉市| 永安市| 德州市| 黄陵县| 通许县| 陆川县| 安多县| 桂林市| 大方县| 达尔| 双辽市|