91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MyBatis模糊查詢的實現方式有哪些

發布時間:2023-05-05 10:00:47 來源:億速云 閱讀:89 作者:zzz 欄目:開發技術

本文小編為大家詳細介紹“MyBatis模糊查詢的實現方式有哪些”,內容詳細,步驟清晰,細節處理妥當,希望這篇“MyBatis模糊查詢的實現方式有哪些”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

一、模糊查詢的幾種實現方式

1.concat函數和#{}拼接的方式

student_name like concat('%',#{studentName},'%')

2.%和${}拼接的方式

student_name like '%${studentName}%'

3.concat函數和${}拼接的方式

student_name like concat('%','${studentName}','%')

4.||和#{}拼接的方式

student_name like '%'||#{studentName}||'%'

分析: (1)${}:表示拼接sql串,將接收到參數的內容不加任何修飾拼接在sql中,可能引發sql注入。 (2)#{ }是預編譯處理,MyBatis在處理#{ }時,它會將sql中的#{ }替換為?,然后調用PreparedStatement的set方法來賦值,傳入字符串后,會在值兩邊加上單引號,使用占位符的方式提高效率,可以防止sql注入。因此最好使用#{ }方式。 (3)concat函數最好不要使用,最好使用||,因為在Oracle中,concat()只能對兩個字符串進行拼接(字符串多的話只能嵌套使用),而||可以對字符串無限拼接。

5.建議使用的方式

建議使用第四種哦,示例:

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

二、用mybatis出現的一些問題

1.一般查詢條件的使用

在mapper文件里面關于查詢if的條件基本都要寫出兩種空值,否則就會在查詢時把其他不需要的數據也查出來。

錯誤示范:

<if test="studentName != null">
	and student_name = #{studentName}
</if>

正確示范:

<if test="studentName != null and studentName !=''">
	and student_name = #{studentName}
</if>

2.日期查詢條件的使用

這個是在寫日期查詢條件時,出現了日期只能修改,但不能為空的問題:

錯誤示范:

<if test="effDate != null and effDate !=''">
	and eff_date = #{effDate}
</if>
<if test="expDate != null and expDate !=''">
    and exp_date = #{expDate}
</if>

正確示范:去掉外面的if判空條件

and eff_date = #{effDate}
and exp_date = #{expDate}

3.排序問題

查詢時最好按id倒序,在修改之后不影響原有順序

比如:order by student_id desc

讀到這里,這篇“MyBatis模糊查詢的實現方式有哪些”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

卓尼县| 贡觉县| 句容市| 宁武县| 贵阳市| 太仆寺旗| 道真| 博湖县| 德保县| 抚顺市| 浪卡子县| 天水市| 巴彦县| 杭州市| 卢氏县| 霍邱县| 崇信县| 宝山区| 台中市| 临高县| 日照市| 施秉县| 福海县| 崇文区| 尚志市| 新沂市| 阳春市| 江口县| 电白县| 嘉禾县| 芜湖县| 宁都县| 金乡县| 天全县| 石家庄市| 大港区| 南岸区| 寻乌县| 石屏县| 搜索| 广饶县|